From ef37f002ee3189cbe647a853d287eb4e5e1b0fba Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Wed, 23 May 2018 10:04:22 +0000 Subject: [PATCH] =?UTF-8?q?Once=20upon=20a=20midnight=20dreary,=20while=20?= =?UTF-8?q?I=20coded,=20weak=20and=20weary,=20In=20many=20a=20strange=20an?= =?UTF-8?q?d=20curious=20file=20of=20forgotten=20lore=E2=80=94=20While=20I?= =?UTF-8?q?=20pondered,=20blaming=20Nacin,=20my=20notifications=20suddenly?= =?UTF-8?q?=20awakened,=20As=20of=20someone=20quietly=20DMing;=E2=80=94DMi?= =?UTF-8?q?ng=20me,=20I=20can=E2=80=99t=20ignore.=20=E2=80=9C=E2=80=99Tis?= =?UTF-8?q?=20some=20contributor,=E2=80=9D=20I=20muttered,=20=E2=80=9CDMin?= =?UTF-8?q?g=20me=20an=20idea=20or=20four=E2=80=94=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20Only=20this=20and=20nothing=20more.=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ah, distinctly I remember, at WordCamp US, last December; A mad proposal nearly laid me—down out cold—upon the floor. Curious, I listened closely;—to a plan I agreed with, mostly— A way to make our JavaScript—JavaScript which was a chore— Maintainable, extendable, for the future, is what I saw. Guten-ready for evermore. Open here I switch to Slack, when, with many a patch and hack, In there stepped Omar, a JavaScript developer hardcore; Pronouncing all the changes fit; ready now to be commit; “There’s nothing else for us to do,” DMing me, “It’s done!” he swore— “No longer random guessing at which file need next be explored— Let’s move on, we’re all aboard.” Moved all together, grouped and managed, in folders all is packaged, The code had all been cleaned and tidied, important parts moved to the fore, “Though this change be useful here,” I said, “it is too large, I fear, We couldn’t manage such a patch, we’ve done nothing like this before— Tell me where doth go this change, change to make our codebase soar!” Quoth Omar, “In WordPress Core.” Props omarreis for shepherding this significant change. Props adamsilverstein, aduth, atimmer, dingo_bastard, frank-klein, gziolo, herregroen, jaswrks, jeremyfelt, jipmoors, jorbin, netweb, ocean90, pento, tjnowell, and youknowriad for testing, feedback, discussion, encouragement, commiserations, etc. I make no apologies for this commit message. Fixes #43055. git-svn-id: https://develop.svn.wordpress.org/trunk@43309 602fd350-edb4-49c9-b593-d223f7449a82 --- .gitignore | 4 +- .npmrc | 1 + .nvmrc | 1 + Gruntfile.js | 592 +- package-lock.json | 11730 ++++++++++++++++ package.json | 14 + src/_index.php | 17 + src/index.php | 56 +- .../js => js/_enqueues/admin}/comment.js | 0 .../js => js/_enqueues/admin}/common.js | 0 .../_enqueues/admin}/custom-background.js | 0 .../_enqueues/admin}/custom-header.js | 0 .../_enqueues/admin}/edit-comments.js | 0 .../_enqueues/admin}/inline-edit-post.js | 0 .../_enqueues/admin}/inline-edit-tax.js | 0 .../js => js/_enqueues/admin}/link.js | 0 .../js => js/_enqueues/admin}/media-upload.js | 0 .../js => js/_enqueues/admin}/media.js | 0 .../_enqueues/admin}/plugin-install.js | 0 .../js => js/_enqueues/admin}/post.js | 0 .../js => js/_enqueues/admin}/postbox.js | 0 .../_enqueues/admin}/set-post-thumbnail.js | 0 .../js => js/_enqueues/admin}/tags-box.js | 0 .../js => js/_enqueues/admin}/tags-suggest.js | 0 .../js => js/_enqueues/admin}/tags.js | 0 .../js => js/_enqueues/admin}/user-profile.js | 0 .../js => js/_enqueues/admin}/widgets.js | 0 .../js => js/_enqueues/admin}/xfn.js | 0 .../_enqueues/deprecated/fullscreen-stub.js} | 0 .../_enqueues/deprecated}/media-gallery.js | 0 .../js => js/_enqueues/lib}/accordion.js | 0 .../js => js/_enqueues/lib}/admin-bar.js | 0 .../_enqueues/lib/ajax-response.js} | 0 .../_enqueues/lib/auth-check.js} | 0 .../js => js/_enqueues/lib}/color-picker.js | 0 .../js => js/_enqueues/lib}/comment-reply.js | 0 .../utils.js => js/_enqueues/lib/cookies.js} | 0 .../_enqueues/lib/dialog.js} | 0 .../_enqueues/lib/embed-template.js} | 0 .../_enqueues/lib/emoji-loader.js} | 0 .../js => js/_enqueues/lib}/gallery.js | 0 .../js => js/_enqueues/lib}/image-edit.js | 0 .../_enqueues/lib}/language-chooser.js | 0 .../js/wplink.js => js/_enqueues/lib/link.js} | 0 .../_enqueues/lib/list-revisions.js} | 0 .../wp-lists.js => js/_enqueues/lib/lists.js} | 0 .../js => js/_enqueues/lib}/nav-menu.js | 0 .../_enqueues/lib/pointer.js} | 0 .../js => js/_enqueues/lib}/quicktags.js | 0 .../js => js/_enqueues/lib}/user-suggest.js | 0 .../js => js/_enqueues/lib}/zxcvbn-async.js | 0 src/js/_enqueues/vendor/README.md | 34 + .../vendor}/codemirror/codemirror.min.css | 0 .../vendor}/codemirror/codemirror.min.js | 0 .../_enqueues/vendor}/codemirror/csslint.js | 0 .../_enqueues/vendor}/codemirror/esprima.js | 0 .../vendor}/codemirror/fakejshint.js | 0 .../vendor}/codemirror/htmlhint-kses.js | 0 .../_enqueues/vendor}/codemirror/htmlhint.js | 0 .../_enqueues/vendor}/codemirror/jsonlint.js | 0 .../js => js/_enqueues/vendor}/colorpicker.js | 0 .../_enqueues/vendor}/crop/cropper.css | 0 .../_enqueues/vendor}/crop/cropper.js | 0 .../_enqueues/vendor}/crop/marqueeHoriz.gif | Bin .../_enqueues/vendor}/crop/marqueeVert.gif | Bin .../_enqueues/vendor/deprecated}/suggest.js | 0 .../vendor/deprecated}/suggest.min.js | 0 .../js => js/_enqueues/vendor}/farbtastic.js | 0 .../vendor}/imgareaselect/border-anim-h.gif | Bin .../vendor}/imgareaselect/border-anim-v.gif | Bin .../vendor}/imgareaselect/imgareaselect.css | 0 .../imgareaselect/jquery.imgareaselect.js | 0 .../imgareaselect/jquery.imgareaselect.min.js | 0 .../js => js/_enqueues/vendor}/iris.min.js | 0 .../_enqueues/vendor}/jcrop/Jcrop.gif | Bin .../vendor}/jcrop/jquery.Jcrop.min.css | 0 .../vendor}/jcrop/jquery.Jcrop.min.js | 0 .../vendor}/jquery/jquery.color.min.js | 0 .../vendor}/jquery/jquery.hotkeys.js | 0 .../vendor}/jquery/jquery.hotkeys.min.js | 0 .../vendor}/jquery/jquery.masonry.js | 0 .../vendor}/jquery/jquery.masonry.min.js | 0 .../_enqueues/vendor}/jquery/jquery.query.js | 0 .../vendor}/jquery/jquery.schedule.js | 0 .../vendor}/jquery/jquery.serialize-object.js | 0 .../vendor}/jquery/jquery.table-hotkeys.js | 0 .../jquery/jquery.table-hotkeys.min.js | 0 .../vendor}/jquery/jquery.ui.touch-punch.js | 0 .../js => js/_enqueues/vendor}/json2.js | 0 .../mediaelement/mediaelement-and-player.js | 0 .../mediaelement-and-player.min.js | 0 .../mediaelement/mediaelement-migrate.js | 0 .../vendor}/mediaelement/mediaelement.js | 0 .../vendor}/mediaelement/mediaelement.min.js | 0 .../mediaelementplayer-legacy.css | 0 .../mediaelementplayer-legacy.min.css | 0 .../mediaelement/mediaelementplayer.css | 0 .../mediaelement/mediaelementplayer.min.css | 0 .../vendor}/mediaelement/mejs-controls.png | Bin .../vendor}/mediaelement/mejs-controls.svg | 0 .../vendor}/mediaelement/renderers/vimeo.js | 0 .../mediaelement/renderers/vimeo.min.js | 0 .../vendor}/mediaelement/wp-mediaelement.css | 0 .../vendor}/mediaelement/wp-mediaelement.js | 0 .../vendor}/mediaelement/wp-playlist.js | 0 .../_enqueues/vendor}/plupload/handlers.js | 0 .../_enqueues/vendor}/plupload/license.txt | 0 .../_enqueues/vendor}/plupload/moxie.js | 0 .../_enqueues/vendor}/plupload/plupload.js | 0 .../_enqueues/vendor}/plupload/wp-plupload.js | 0 .../js => js/_enqueues/vendor}/swfobject.js | 0 .../_enqueues/vendor}/swfupload/handlers.js | 0 .../vendor}/swfupload/handlers.min.js | 0 .../_enqueues/vendor}/swfupload/license.txt | 0 .../_enqueues/vendor}/swfupload/swfupload.js | 0 .../vendor}/thickbox/loadingAnimation.gif | Bin .../vendor}/thickbox/macFFBgHack.png | Bin .../_enqueues/vendor}/thickbox/thickbox.css | 0 .../_enqueues/vendor}/thickbox/thickbox.js | 0 .../vendor}/tinymce/langs/wp-langs-en.js | 0 .../_enqueues/vendor}/tinymce/license.txt | 0 .../vendor}/tinymce/plugins/charmap/plugin.js | 0 .../tinymce/plugins/charmap/plugin.min.js | 0 .../tinymce/plugins/colorpicker/plugin.js | 0 .../tinymce/plugins/colorpicker/plugin.min.js | 0 .../tinymce/plugins/compat3x/css/dialog.css | 0 .../tinymce/plugins/compat3x/plugin.js | 0 .../tinymce/plugins/compat3x/plugin.min.js | 0 .../tinymce/plugins/directionality/plugin.js | 0 .../plugins/directionality/plugin.min.js | 0 .../tinymce/plugins/fullscreen/plugin.js | 0 .../tinymce/plugins/fullscreen/plugin.min.js | 0 .../vendor}/tinymce/plugins/hr/plugin.js | 0 .../vendor}/tinymce/plugins/hr/plugin.min.js | 0 .../vendor}/tinymce/plugins/image/plugin.js | 0 .../tinymce/plugins/image/plugin.min.js | 0 .../vendor}/tinymce/plugins/link/plugin.js | 0 .../tinymce/plugins/link/plugin.min.js | 0 .../vendor}/tinymce/plugins/lists/plugin.js | 0 .../tinymce/plugins/lists/plugin.min.js | 0 .../vendor}/tinymce/plugins/media/plugin.js | 0 .../tinymce/plugins/media/plugin.min.js | 0 .../vendor}/tinymce/plugins/paste/plugin.js | 0 .../tinymce/plugins/paste/plugin.min.js | 0 .../tinymce/plugins/tabfocus/plugin.js | 0 .../tinymce/plugins/tabfocus/plugin.min.js | 0 .../tinymce/plugins/textcolor/plugin.js | 0 .../tinymce/plugins/textcolor/plugin.min.js | 0 .../tinymce/plugins/wordpress/plugin.js | 0 .../tinymce/plugins/wpautoresize/plugin.js | 0 .../tinymce/plugins/wpdialogs/plugin.js | 0 .../tinymce/plugins/wpeditimage/plugin.js | 0 .../vendor}/tinymce/plugins/wpemoji/plugin.js | 0 .../tinymce/plugins/wpgallery/plugin.js | 0 .../vendor}/tinymce/plugins/wplink/plugin.js | 0 .../tinymce/plugins/wptextpattern/plugin.js | 0 .../vendor}/tinymce/plugins/wpview/plugin.js | 0 .../skins/lightgray/content.inline.min.css | 0 .../tinymce/skins/lightgray/content.min.css | 0 .../skins/lightgray/fonts/tinymce-small.eot | Bin .../skins/lightgray/fonts/tinymce-small.svg | 0 .../skins/lightgray/fonts/tinymce-small.ttf | Bin .../skins/lightgray/fonts/tinymce-small.woff | Bin .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin .../tinymce/skins/lightgray/fonts/tinymce.svg | 0 .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin .../skins/lightgray/fonts/tinymce.woff | Bin .../tinymce/skins/lightgray/img/anchor.gif | Bin .../tinymce/skins/lightgray/img/loader.gif | Bin .../tinymce/skins/lightgray/img/object.gif | Bin .../tinymce/skins/lightgray/img/trans.gif | Bin .../tinymce/skins/lightgray/skin.min.css | 0 .../tinymce/skins/wordpress/images/audio.png | Bin .../skins/wordpress/images/dashicon-edit.png | Bin .../skins/wordpress/images/dashicon-no.png | Bin .../skins/wordpress/images/embedded.png | Bin .../skins/wordpress/images/gallery-2x.png | Bin .../skins/wordpress/images/gallery.png | Bin .../skins/wordpress/images/more-2x.png | Bin .../tinymce/skins/wordpress/images/more.png | Bin .../skins/wordpress/images/pagebreak-2x.png | Bin .../skins/wordpress/images/pagebreak.png | Bin .../skins/wordpress/images/playlist-audio.png | Bin .../skins/wordpress/images/playlist-video.png | Bin .../tinymce/skins/wordpress/images/video.png | Bin .../tinymce/skins/wordpress/wp-content.css | 0 .../vendor}/tinymce/themes/inlite/theme.js | 0 .../tinymce/themes/inlite/theme.min.js | 0 .../vendor}/tinymce/themes/modern/theme.js | 0 .../tinymce/themes/modern/theme.min.js | 0 .../vendor}/tinymce/tiny_mce_popup.js | 0 .../_enqueues/vendor}/tinymce/tinymce.js | 0 .../_enqueues/vendor}/tinymce/tinymce.min.js | 0 .../vendor}/tinymce/utils/editable_selects.js | 0 .../vendor}/tinymce/utils/form_utils.js | 0 .../_enqueues/vendor}/tinymce/utils/mctabs.js | 0 .../vendor}/tinymce/utils/validate.js | 0 .../_enqueues/vendor}/tinymce/wp-tinymce.php | 0 .../js => js/_enqueues/vendor}/tw-sack.js | 0 .../js => js/_enqueues/vendor}/zxcvbn.min.js | 0 .../js/wp-a11y.js => js/_enqueues/wp/a11y.js} | 0 .../js => js/_enqueues/wp}/api-request.js | 0 .../js/wp-api.js => js/_enqueues/wp/api.js} | 0 .../js => js/_enqueues/wp}/autosave.js | 0 .../_enqueues/wp/backbone.js} | 0 .../js => js/_enqueues/wp}/code-editor.js | 0 .../_enqueues/wp/custom-header.js} | 0 .../_enqueues/wp/customize/base.js} | 0 .../_enqueues/wp/customize/controls.js} | 0 .../_enqueues/wp/customize/loader.js} | 0 .../_enqueues/wp/customize/models.js} | 0 .../_enqueues/wp/customize/nav-menus.js} | 0 .../wp/customize/preview-nav-menus.js} | 0 .../wp/customize/preview-widgets.js} | 0 .../_enqueues/wp/customize/preview.js} | 0 .../wp/customize/selective-refresh.js} | 0 .../_enqueues/wp/customize/views.js} | 0 .../_enqueues/wp/customize/widgets.js} | 0 .../js => js/_enqueues/wp}/dashboard.js | 0 .../_enqueues/wp/editor/base.js} | 0 .../_enqueues/wp/editor/dfw.js} | 0 .../wp-embed.js => js/_enqueues/wp/embed.js} | 0 .../wp-emoji.js => js/_enqueues/wp/emoji.js} | 0 .../js => js/_enqueues/wp}/heartbeat.js | 0 .../js => js/_enqueues/wp}/mce-view.js | 0 .../_enqueues/wp/media/audiovideo.js} | 18 +- .../_enqueues/wp/media/editor.js} | 0 src/js/_enqueues/wp/media/grid.js | 11 + .../_enqueues/wp/media/models.js} | 10 +- src/js/_enqueues/wp/media/views.js | 149 + .../_enqueues/wp}/password-strength-meter.js | 0 .../js => js/_enqueues/wp}/revisions.js | 0 .../_enqueues/wp/sanitize.js} | 0 .../js => js/_enqueues/wp}/shortcode.js | 0 .../js => js/_enqueues/wp}/svg-painter.js | 0 .../_enqueues/wp}/theme-plugin-editor.js | 0 src/{wp-admin/js => js/_enqueues/wp}/theme.js | 0 .../js => js/_enqueues/wp}/updates.js | 0 .../js/wp-util.js => js/_enqueues/wp/util.js} | 0 .../_enqueues/wp/utils}/word-count.js | 0 .../_enqueues/wp/widgets/custom-html.js} | 0 .../_enqueues/wp/widgets/media-audio.js} | 0 .../_enqueues/wp/widgets/media-gallery.js} | 0 .../_enqueues/wp/widgets/media-image.js} | 0 .../_enqueues/wp/widgets/media-video.js} | 0 .../_enqueues/wp/widgets/media.js} | 0 .../_enqueues/wp/widgets/text.js} | 0 .../js/media/controllers/audio-details.js | 0 .../js/media/controllers/collection-add.js | 0 .../js/media/controllers/collection-edit.js | 0 .../js/media/controllers/cropper.js | 0 .../controllers/customize-image-cropper.js | 0 .../controllers/edit-attachment-metadata.js | 0 .../js/media/controllers/edit-image.js | 0 .../js/media/controllers/embed.js | 0 .../js/media/controllers/featured-image.js | 0 .../js/media/controllers/gallery-add.js | 0 .../js/media/controllers/gallery-edit.js | 0 .../js/media/controllers/image-details.js | 0 .../js/media/controllers/library.js | 0 .../js/media/controllers/media-library.js | 0 .../js/media/controllers/region.js | 0 .../js/media/controllers/replace-image.js | 0 .../js/media/controllers/site-icon-cropper.js | 0 .../js/media/controllers/state-machine.js | 0 .../js/media/controllers/state.js | 0 .../js/media/controllers/video-details.js | 0 .../js/media/models/attachment.js | 0 .../js/media/models/attachments.js | 0 .../js/media/models/post-image.js | 0 .../js/media/models/post-media.js | 0 .../js/media/models/query.js | 0 .../js/media/models/selection.js | 0 .../js/media/routers/manage.js | 0 .../js/media/utils/selection-sync.js | 0 .../js/media/views/attachment-compat.js | 0 .../js/media/views/attachment-filters.js | 0 .../js/media/views/attachment-filters/all.js | 0 .../js/media/views/attachment-filters/date.js | 0 .../views/attachment-filters/uploaded.js | 0 .../js/media/views/attachment.js | 0 .../views/attachment/details-two-column.js | 0 .../js/media/views/attachment/details.js | 0 .../js/media/views/attachment/edit-library.js | 0 .../media/views/attachment/edit-selection.js | 0 .../js/media/views/attachment/library.js | 0 .../js/media/views/attachment/selection.js | 0 .../js/media/views/attachments.js | 0 .../js/media/views/attachments/browser.js | 0 .../js/media/views/attachments/selection.js | 0 .../js/media/views/audio-details.js | 0 .../js/media/views/button-group.js | 0 .../js/media/views/button.js | 0 .../button/delete-selected-permanently.js | 0 .../js/media/views/button/delete-selected.js | 0 .../media/views/button/select-mode-toggle.js | 0 .../js/media/views/cropper.js | 0 .../js/media/views/edit-image-details.js | 0 .../js/media/views/edit-image.js | 0 src/{wp-includes => }/js/media/views/embed.js | 0 .../js/media/views/embed/image.js | 0 .../js/media/views/embed/link.js | 0 .../js/media/views/embed/url.js | 0 .../js/media/views/focus-manager.js | 0 src/{wp-includes => }/js/media/views/frame.js | 0 .../js/media/views/frame/audio-details.js | 0 .../js/media/views/frame/edit-attachments.js | 0 .../js/media/views/frame/image-details.js | 0 .../js/media/views/frame/manage.js | 0 .../js/media/views/frame/media-details.js | 0 .../js/media/views/frame/post.js | 0 .../js/media/views/frame/select.js | 0 .../js/media/views/frame/video-details.js | 0 .../js/media/views/iframe.js | 0 .../js/media/views/image-details.js | 0 src/{wp-includes => }/js/media/views/label.js | 0 .../js/media/views/media-details.js | 0 .../js/media/views/media-frame.js | 0 .../js/media/views/menu-item.js | 0 src/{wp-includes => }/js/media/views/menu.js | 0 src/{wp-includes => }/js/media/views/modal.js | 0 .../js/media/views/priority-list.js | 0 .../js/media/views/router-item.js | 0 .../js/media/views/router.js | 0 .../js/media/views/search.js | 0 .../js/media/views/selection.js | 0 .../js/media/views/settings.js | 0 .../views/settings/attachment-display.js | 0 .../js/media/views/settings/gallery.js | 0 .../js/media/views/settings/playlist.js | 0 .../js/media/views/sidebar.js | 0 .../js/media/views/site-icon-cropper.js | 0 .../js/media/views/site-icon-preview.js | 0 .../js/media/views/spinner.js | 0 .../js/media/views/toolbar.js | 0 .../js/media/views/toolbar/embed.js | 0 .../js/media/views/toolbar/select.js | 0 .../js/media/views/uploader/editor.js | 0 .../js/media/views/uploader/inline.js | 0 .../js/media/views/uploader/status-error.js | 0 .../js/media/views/uploader/status.js | 0 .../js/media/views/uploader/window.js | 0 .../js/media/views/video-details.js | 0 src/{wp-includes => }/js/media/views/view.js | 0 src/wp-admin/_index.php | 156 + src/wp-admin/css/about.css | 12 - src/wp-admin/css/admin-menu.css | 4 - src/wp-admin/css/color-picker.css | 1 - src/wp-admin/css/common.css | 5 - src/wp-admin/css/customize-controls.css | 64 +- src/wp-admin/css/edit.css | 6 - src/wp-admin/css/forms.css | 16 - src/wp-admin/css/list-tables.css | 14 - src/wp-admin/css/media.css | 1 - src/wp-admin/css/revisions.css | 3 - src/wp-admin/css/themes.css | 8 - src/wp-admin/css/widgets.css | 5 - src/wp-admin/index.php | 183 +- src/wp-includes/css/buttons.css | 2 - src/wp-includes/css/customize-preview.css | 86 - src/wp-includes/css/editor.css | 2 - src/wp-includes/css/jquery-ui-dialog.css | 2 - src/wp-includes/css/media-views.css | 7 +- src/wp-includes/css/wp-auth-check.css | 1 - src/wp-includes/css/wp-embed-template.css | 2 - src/wp-includes/js/backbone.js | 1920 --- src/wp-includes/js/backbone.min.js | 1 - src/wp-includes/js/hoverIntent.js | 115 - src/wp-includes/js/imagesloaded.min.js | 7 - src/wp-includes/js/jquery/jquery-migrate.js | 752 - .../js/jquery/jquery-migrate.min.js | 2 - src/wp-includes/js/jquery/jquery.form.js | 1520 -- src/wp-includes/js/jquery/jquery.form.min.js | 12 - src/wp-includes/js/jquery/jquery.js | 6 - src/wp-includes/js/jquery/ui/accordion.js | 590 - src/wp-includes/js/jquery/ui/autocomplete.js | 628 - src/wp-includes/js/jquery/ui/button.js | 411 - src/wp-includes/js/jquery/ui/core.js | 304 - src/wp-includes/js/jquery/ui/datepicker.js | 2084 --- src/wp-includes/js/jquery/ui/dialog.js | 876 -- src/wp-includes/js/jquery/ui/draggable.js | 1132 -- src/wp-includes/js/jquery/ui/droppable.js | 413 - src/wp-includes/js/jquery/ui/effect-blind.js | 90 - src/wp-includes/js/jquery/ui/effect-bounce.js | 123 - src/wp-includes/js/jquery/ui/effect-clip.js | 77 - src/wp-includes/js/jquery/ui/effect-drop.js | 75 - .../js/jquery/ui/effect-explode.js | 107 - src/wp-includes/js/jquery/ui/effect-fade.js | 40 - src/wp-includes/js/jquery/ui/effect-fold.js | 86 - .../js/jquery/ui/effect-highlight.js | 60 - src/wp-includes/js/jquery/ui/effect-puff.js | 60 - .../js/jquery/ui/effect-pulsate.js | 73 - src/wp-includes/js/jquery/ui/effect-scale.js | 89 - src/wp-includes/js/jquery/ui/effect-shake.js | 84 - src/wp-includes/js/jquery/ui/effect-size.js | 233 - src/wp-includes/js/jquery/ui/effect-slide.js | 74 - .../js/jquery/ui/effect-transfer.js | 57 - src/wp-includes/js/jquery/ui/effect.js | 1301 -- src/wp-includes/js/jquery/ui/menu.js | 646 - src/wp-includes/js/jquery/ui/mouse.js | 199 - src/wp-includes/js/jquery/ui/position.js | 517 - src/wp-includes/js/jquery/ui/progressbar.js | 159 - src/wp-includes/js/jquery/ui/resizable.js | 1152 -- src/wp-includes/js/jquery/ui/selectable.js | 287 - src/wp-includes/js/jquery/ui/selectmenu.js | 615 - src/wp-includes/js/jquery/ui/slider.js | 717 - src/wp-includes/js/jquery/ui/sortable.js | 1315 -- src/wp-includes/js/jquery/ui/spinner.js | 514 - src/wp-includes/js/jquery/ui/tabs.js | 886 -- src/wp-includes/js/jquery/ui/tooltip.js | 473 - src/wp-includes/js/jquery/ui/widget.js | 558 - src/wp-includes/js/masonry.min.js | 9 - src/wp-includes/js/media-audiovideo.js | 1105 -- src/wp-includes/js/media-grid.js | 1049 -- src/wp-includes/js/media-models.js | 1628 --- src/wp-includes/js/media-views.js | 9490 ------------- src/wp-includes/js/media/grid.manifest.js | 11 - src/wp-includes/js/media/views.manifest.js | 149 - src/wp-includes/js/twemoji.js | 568 - src/wp-includes/js/underscore.js | 1548 -- src/wp-includes/js/underscore.min.js | 5 - tests/phpunit/includes/bootstrap.php | 6 + tests/qunit/index.html | 82 +- webpack.config.dev.js | 49 +- webpack.config.prod.js | 52 +- wp-tests-config-sample.php | 2 +- 426 files changed, 12835 insertions(+), 37575 deletions(-) create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 package-lock.json create mode 100644 src/_index.php rename src/{wp-admin/js => js/_enqueues/admin}/comment.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/common.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/custom-background.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/custom-header.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/edit-comments.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/inline-edit-post.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/inline-edit-tax.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/link.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/media-upload.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/media.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/plugin-install.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/post.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/postbox.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/set-post-thumbnail.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/tags-box.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/tags-suggest.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/tags.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/user-profile.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/widgets.js (100%) rename src/{wp-admin/js => js/_enqueues/admin}/xfn.js (100%) rename src/{wp-admin/js/wp-fullscreen-stub.js => js/_enqueues/deprecated/fullscreen-stub.js} (100%) rename src/{wp-admin/js => js/_enqueues/deprecated}/media-gallery.js (100%) rename src/{wp-admin/js => js/_enqueues/lib}/accordion.js (100%) rename src/{wp-includes/js => js/_enqueues/lib}/admin-bar.js (100%) rename src/{wp-includes/js/wp-ajax-response.js => js/_enqueues/lib/ajax-response.js} (100%) rename src/{wp-includes/js/wp-auth-check.js => js/_enqueues/lib/auth-check.js} (100%) rename src/{wp-admin/js => js/_enqueues/lib}/color-picker.js (100%) rename src/{wp-includes/js => js/_enqueues/lib}/comment-reply.js (100%) rename src/{wp-includes/js/utils.js => js/_enqueues/lib/cookies.js} (100%) rename src/{wp-includes/js/wpdialog.js => js/_enqueues/lib/dialog.js} (100%) rename src/{wp-includes/js/wp-embed-template.js => js/_enqueues/lib/embed-template.js} (100%) rename src/{wp-includes/js/wp-emoji-loader.js => js/_enqueues/lib/emoji-loader.js} (100%) rename src/{wp-admin/js => js/_enqueues/lib}/gallery.js (100%) rename src/{wp-admin/js => js/_enqueues/lib}/image-edit.js (100%) rename src/{wp-admin/js => js/_enqueues/lib}/language-chooser.js (100%) rename src/{wp-includes/js/wplink.js => js/_enqueues/lib/link.js} (100%) rename src/{wp-includes/js/wp-list-revisions.js => js/_enqueues/lib/list-revisions.js} (100%) rename src/{wp-includes/js/wp-lists.js => js/_enqueues/lib/lists.js} (100%) rename src/{wp-admin/js => js/_enqueues/lib}/nav-menu.js (100%) rename src/{wp-includes/js/wp-pointer.js => js/_enqueues/lib/pointer.js} (100%) rename src/{wp-includes/js => js/_enqueues/lib}/quicktags.js (100%) rename src/{wp-admin/js => js/_enqueues/lib}/user-suggest.js (100%) rename src/{wp-includes/js => js/_enqueues/lib}/zxcvbn-async.js (100%) create mode 100644 src/js/_enqueues/vendor/README.md rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/codemirror.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/codemirror.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/csslint.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/esprima.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/fakejshint.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/htmlhint-kses.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/htmlhint.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/codemirror/jsonlint.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/colorpicker.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/crop/cropper.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/crop/cropper.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/crop/marqueeHoriz.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/crop/marqueeVert.gif (100%) rename src/{wp-includes/js/jquery => js/_enqueues/vendor/deprecated}/suggest.js (100%) rename src/{wp-includes/js/jquery => js/_enqueues/vendor/deprecated}/suggest.min.js (100%) rename src/{wp-admin/js => js/_enqueues/vendor}/farbtastic.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/imgareaselect/border-anim-h.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/imgareaselect/border-anim-v.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/imgareaselect/imgareaselect.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/imgareaselect/jquery.imgareaselect.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/imgareaselect/jquery.imgareaselect.min.js (100%) rename src/{wp-admin/js => js/_enqueues/vendor}/iris.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jcrop/Jcrop.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jcrop/jquery.Jcrop.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jcrop/jquery.Jcrop.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.color.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.hotkeys.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.hotkeys.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.masonry.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.masonry.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.query.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.schedule.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.serialize-object.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.table-hotkeys.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.table-hotkeys.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/jquery/jquery.ui.touch-punch.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/json2.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelement-and-player.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelement-and-player.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelement-migrate.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelement.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelement.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelementplayer-legacy.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelementplayer-legacy.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelementplayer.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mediaelementplayer.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mejs-controls.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/mejs-controls.svg (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/renderers/vimeo.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/renderers/vimeo.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/wp-mediaelement.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/wp-mediaelement.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/mediaelement/wp-playlist.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/plupload/handlers.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/plupload/license.txt (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/plupload/moxie.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/plupload/plupload.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/plupload/wp-plupload.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/swfobject.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/swfupload/handlers.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/swfupload/handlers.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/swfupload/license.txt (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/swfupload/swfupload.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/thickbox/loadingAnimation.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/thickbox/macFFBgHack.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/thickbox/thickbox.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/thickbox/thickbox.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/langs/wp-langs-en.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/license.txt (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/charmap/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/charmap/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/colorpicker/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/colorpicker/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/compat3x/css/dialog.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/compat3x/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/compat3x/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/directionality/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/directionality/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/fullscreen/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/fullscreen/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/hr/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/hr/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/image/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/image/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/link/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/link/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/lists/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/lists/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/media/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/media/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/paste/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/paste/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/tabfocus/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/tabfocus/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/textcolor/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/textcolor/plugin.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wordpress/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wpautoresize/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wpdialogs/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wpeditimage/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wpemoji/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wpgallery/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wplink/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wptextpattern/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/plugins/wpview/plugin.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/content.inline.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/content.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce-small.eot (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce-small.svg (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce-small.ttf (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce-small.woff (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce.eot (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce.svg (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce.ttf (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/fonts/tinymce.woff (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/img/anchor.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/img/loader.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/img/object.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/img/trans.gif (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/lightgray/skin.min.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/audio.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/dashicon-edit.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/dashicon-no.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/embedded.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/gallery-2x.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/gallery.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/more-2x.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/more.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/pagebreak-2x.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/pagebreak.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/playlist-audio.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/playlist-video.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/images/video.png (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/skins/wordpress/wp-content.css (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/themes/inlite/theme.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/themes/inlite/theme.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/themes/modern/theme.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/themes/modern/theme.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/tiny_mce_popup.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/tinymce.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/tinymce.min.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/utils/editable_selects.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/utils/form_utils.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/utils/mctabs.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/utils/validate.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tinymce/wp-tinymce.php (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/tw-sack.js (100%) rename src/{wp-includes/js => js/_enqueues/vendor}/zxcvbn.min.js (100%) rename src/{wp-includes/js/wp-a11y.js => js/_enqueues/wp/a11y.js} (100%) rename src/{wp-includes/js => js/_enqueues/wp}/api-request.js (100%) rename src/{wp-includes/js/wp-api.js => js/_enqueues/wp/api.js} (100%) rename src/{wp-includes/js => js/_enqueues/wp}/autosave.js (100%) rename src/{wp-includes/js/wp-backbone.js => js/_enqueues/wp/backbone.js} (100%) rename src/{wp-admin/js => js/_enqueues/wp}/code-editor.js (100%) rename src/{wp-includes/js/wp-custom-header.js => js/_enqueues/wp/custom-header.js} (100%) rename src/{wp-includes/js/customize-base.js => js/_enqueues/wp/customize/base.js} (100%) rename src/{wp-admin/js/customize-controls.js => js/_enqueues/wp/customize/controls.js} (100%) rename src/{wp-includes/js/customize-loader.js => js/_enqueues/wp/customize/loader.js} (100%) rename src/{wp-includes/js/customize-models.js => js/_enqueues/wp/customize/models.js} (100%) rename src/{wp-admin/js/customize-nav-menus.js => js/_enqueues/wp/customize/nav-menus.js} (100%) rename src/{wp-includes/js/customize-preview-nav-menus.js => js/_enqueues/wp/customize/preview-nav-menus.js} (100%) rename src/{wp-includes/js/customize-preview-widgets.js => js/_enqueues/wp/customize/preview-widgets.js} (100%) rename src/{wp-includes/js/customize-preview.js => js/_enqueues/wp/customize/preview.js} (100%) rename src/{wp-includes/js/customize-selective-refresh.js => js/_enqueues/wp/customize/selective-refresh.js} (100%) rename src/{wp-includes/js/customize-views.js => js/_enqueues/wp/customize/views.js} (100%) rename src/{wp-admin/js/customize-widgets.js => js/_enqueues/wp/customize/widgets.js} (100%) rename src/{wp-admin/js => js/_enqueues/wp}/dashboard.js (100%) rename src/{wp-admin/js/editor.js => js/_enqueues/wp/editor/base.js} (100%) rename src/{wp-admin/js/editor-expand.js => js/_enqueues/wp/editor/dfw.js} (100%) rename src/{wp-includes/js/wp-embed.js => js/_enqueues/wp/embed.js} (100%) rename src/{wp-includes/js/wp-emoji.js => js/_enqueues/wp/emoji.js} (100%) rename src/{wp-includes/js => js/_enqueues/wp}/heartbeat.js (100%) rename src/{wp-includes/js => js/_enqueues/wp}/mce-view.js (100%) rename src/{wp-includes/js/media/audiovideo.manifest.js => js/_enqueues/wp/media/audiovideo.js} (87%) rename src/{wp-includes/js/media-editor.js => js/_enqueues/wp/media/editor.js} (100%) create mode 100644 src/js/_enqueues/wp/media/grid.js rename src/{wp-includes/js/media/models.manifest.js => js/_enqueues/wp/media/models.js} (94%) create mode 100644 src/js/_enqueues/wp/media/views.js rename src/{wp-admin/js => js/_enqueues/wp}/password-strength-meter.js (100%) rename src/{wp-admin/js => js/_enqueues/wp}/revisions.js (100%) rename src/{wp-includes/js/wp-sanitize.js => js/_enqueues/wp/sanitize.js} (100%) rename src/{wp-includes/js => js/_enqueues/wp}/shortcode.js (100%) rename src/{wp-admin/js => js/_enqueues/wp}/svg-painter.js (100%) rename src/{wp-admin/js => js/_enqueues/wp}/theme-plugin-editor.js (100%) rename src/{wp-admin/js => js/_enqueues/wp}/theme.js (100%) rename src/{wp-admin/js => js/_enqueues/wp}/updates.js (100%) rename src/{wp-includes/js/wp-util.js => js/_enqueues/wp/util.js} (100%) rename src/{wp-admin/js => js/_enqueues/wp/utils}/word-count.js (100%) rename src/{wp-admin/js/widgets/custom-html-widgets.js => js/_enqueues/wp/widgets/custom-html.js} (100%) rename src/{wp-admin/js/widgets/media-audio-widget.js => js/_enqueues/wp/widgets/media-audio.js} (100%) rename src/{wp-admin/js/widgets/media-gallery-widget.js => js/_enqueues/wp/widgets/media-gallery.js} (100%) rename src/{wp-admin/js/widgets/media-image-widget.js => js/_enqueues/wp/widgets/media-image.js} (100%) rename src/{wp-admin/js/widgets/media-video-widget.js => js/_enqueues/wp/widgets/media-video.js} (100%) rename src/{wp-admin/js/widgets/media-widgets.js => js/_enqueues/wp/widgets/media.js} (100%) rename src/{wp-admin/js/widgets/text-widgets.js => js/_enqueues/wp/widgets/text.js} (100%) rename src/{wp-includes => }/js/media/controllers/audio-details.js (100%) rename src/{wp-includes => }/js/media/controllers/collection-add.js (100%) rename src/{wp-includes => }/js/media/controllers/collection-edit.js (100%) rename src/{wp-includes => }/js/media/controllers/cropper.js (100%) rename src/{wp-includes => }/js/media/controllers/customize-image-cropper.js (100%) rename src/{wp-includes => }/js/media/controllers/edit-attachment-metadata.js (100%) rename src/{wp-includes => }/js/media/controllers/edit-image.js (100%) rename src/{wp-includes => }/js/media/controllers/embed.js (100%) rename src/{wp-includes => }/js/media/controllers/featured-image.js (100%) rename src/{wp-includes => }/js/media/controllers/gallery-add.js (100%) rename src/{wp-includes => }/js/media/controllers/gallery-edit.js (100%) rename src/{wp-includes => }/js/media/controllers/image-details.js (100%) rename src/{wp-includes => }/js/media/controllers/library.js (100%) rename src/{wp-includes => }/js/media/controllers/media-library.js (100%) rename src/{wp-includes => }/js/media/controllers/region.js (100%) rename src/{wp-includes => }/js/media/controllers/replace-image.js (100%) rename src/{wp-includes => }/js/media/controllers/site-icon-cropper.js (100%) rename src/{wp-includes => }/js/media/controllers/state-machine.js (100%) rename src/{wp-includes => }/js/media/controllers/state.js (100%) rename src/{wp-includes => }/js/media/controllers/video-details.js (100%) rename src/{wp-includes => }/js/media/models/attachment.js (100%) rename src/{wp-includes => }/js/media/models/attachments.js (100%) rename src/{wp-includes => }/js/media/models/post-image.js (100%) rename src/{wp-includes => }/js/media/models/post-media.js (100%) rename src/{wp-includes => }/js/media/models/query.js (100%) rename src/{wp-includes => }/js/media/models/selection.js (100%) rename src/{wp-includes => }/js/media/routers/manage.js (100%) rename src/{wp-includes => }/js/media/utils/selection-sync.js (100%) rename src/{wp-includes => }/js/media/views/attachment-compat.js (100%) rename src/{wp-includes => }/js/media/views/attachment-filters.js (100%) rename src/{wp-includes => }/js/media/views/attachment-filters/all.js (100%) rename src/{wp-includes => }/js/media/views/attachment-filters/date.js (100%) rename src/{wp-includes => }/js/media/views/attachment-filters/uploaded.js (100%) rename src/{wp-includes => }/js/media/views/attachment.js (100%) rename src/{wp-includes => }/js/media/views/attachment/details-two-column.js (100%) rename src/{wp-includes => }/js/media/views/attachment/details.js (100%) rename src/{wp-includes => }/js/media/views/attachment/edit-library.js (100%) rename src/{wp-includes => }/js/media/views/attachment/edit-selection.js (100%) rename src/{wp-includes => }/js/media/views/attachment/library.js (100%) rename src/{wp-includes => }/js/media/views/attachment/selection.js (100%) rename src/{wp-includes => }/js/media/views/attachments.js (100%) rename src/{wp-includes => }/js/media/views/attachments/browser.js (100%) rename src/{wp-includes => }/js/media/views/attachments/selection.js (100%) rename src/{wp-includes => }/js/media/views/audio-details.js (100%) rename src/{wp-includes => }/js/media/views/button-group.js (100%) rename src/{wp-includes => }/js/media/views/button.js (100%) rename src/{wp-includes => }/js/media/views/button/delete-selected-permanently.js (100%) rename src/{wp-includes => }/js/media/views/button/delete-selected.js (100%) rename src/{wp-includes => }/js/media/views/button/select-mode-toggle.js (100%) rename src/{wp-includes => }/js/media/views/cropper.js (100%) rename src/{wp-includes => }/js/media/views/edit-image-details.js (100%) rename src/{wp-includes => }/js/media/views/edit-image.js (100%) rename src/{wp-includes => }/js/media/views/embed.js (100%) rename src/{wp-includes => }/js/media/views/embed/image.js (100%) rename src/{wp-includes => }/js/media/views/embed/link.js (100%) rename src/{wp-includes => }/js/media/views/embed/url.js (100%) rename src/{wp-includes => }/js/media/views/focus-manager.js (100%) rename src/{wp-includes => }/js/media/views/frame.js (100%) rename src/{wp-includes => }/js/media/views/frame/audio-details.js (100%) rename src/{wp-includes => }/js/media/views/frame/edit-attachments.js (100%) rename src/{wp-includes => }/js/media/views/frame/image-details.js (100%) rename src/{wp-includes => }/js/media/views/frame/manage.js (100%) rename src/{wp-includes => }/js/media/views/frame/media-details.js (100%) rename src/{wp-includes => }/js/media/views/frame/post.js (100%) rename src/{wp-includes => }/js/media/views/frame/select.js (100%) rename src/{wp-includes => }/js/media/views/frame/video-details.js (100%) rename src/{wp-includes => }/js/media/views/iframe.js (100%) rename src/{wp-includes => }/js/media/views/image-details.js (100%) rename src/{wp-includes => }/js/media/views/label.js (100%) rename src/{wp-includes => }/js/media/views/media-details.js (100%) rename src/{wp-includes => }/js/media/views/media-frame.js (100%) rename src/{wp-includes => }/js/media/views/menu-item.js (100%) rename src/{wp-includes => }/js/media/views/menu.js (100%) rename src/{wp-includes => }/js/media/views/modal.js (100%) rename src/{wp-includes => }/js/media/views/priority-list.js (100%) rename src/{wp-includes => }/js/media/views/router-item.js (100%) rename src/{wp-includes => }/js/media/views/router.js (100%) rename src/{wp-includes => }/js/media/views/search.js (100%) rename src/{wp-includes => }/js/media/views/selection.js (100%) rename src/{wp-includes => }/js/media/views/settings.js (100%) rename src/{wp-includes => }/js/media/views/settings/attachment-display.js (100%) rename src/{wp-includes => }/js/media/views/settings/gallery.js (100%) rename src/{wp-includes => }/js/media/views/settings/playlist.js (100%) rename src/{wp-includes => }/js/media/views/sidebar.js (100%) rename src/{wp-includes => }/js/media/views/site-icon-cropper.js (100%) rename src/{wp-includes => }/js/media/views/site-icon-preview.js (100%) rename src/{wp-includes => }/js/media/views/spinner.js (100%) rename src/{wp-includes => }/js/media/views/toolbar.js (100%) rename src/{wp-includes => }/js/media/views/toolbar/embed.js (100%) rename src/{wp-includes => }/js/media/views/toolbar/select.js (100%) rename src/{wp-includes => }/js/media/views/uploader/editor.js (100%) rename src/{wp-includes => }/js/media/views/uploader/inline.js (100%) rename src/{wp-includes => }/js/media/views/uploader/status-error.js (100%) rename src/{wp-includes => }/js/media/views/uploader/status.js (100%) rename src/{wp-includes => }/js/media/views/uploader/window.js (100%) rename src/{wp-includes => }/js/media/views/video-details.js (100%) rename src/{wp-includes => }/js/media/views/view.js (100%) create mode 100644 src/wp-admin/_index.php delete mode 100644 src/wp-includes/js/backbone.js delete mode 100644 src/wp-includes/js/backbone.min.js delete mode 100644 src/wp-includes/js/hoverIntent.js delete mode 100644 src/wp-includes/js/imagesloaded.min.js delete mode 100644 src/wp-includes/js/jquery/jquery-migrate.js delete mode 100644 src/wp-includes/js/jquery/jquery-migrate.min.js delete mode 100644 src/wp-includes/js/jquery/jquery.form.js delete mode 100644 src/wp-includes/js/jquery/jquery.form.min.js delete mode 100644 src/wp-includes/js/jquery/jquery.js delete mode 100644 src/wp-includes/js/jquery/ui/accordion.js delete mode 100644 src/wp-includes/js/jquery/ui/autocomplete.js delete mode 100644 src/wp-includes/js/jquery/ui/button.js delete mode 100644 src/wp-includes/js/jquery/ui/core.js delete mode 100644 src/wp-includes/js/jquery/ui/datepicker.js delete mode 100644 src/wp-includes/js/jquery/ui/dialog.js delete mode 100644 src/wp-includes/js/jquery/ui/draggable.js delete mode 100644 src/wp-includes/js/jquery/ui/droppable.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-blind.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-bounce.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-clip.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-drop.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-explode.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-fade.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-fold.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-highlight.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-puff.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-pulsate.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-scale.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-shake.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-size.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-slide.js delete mode 100644 src/wp-includes/js/jquery/ui/effect-transfer.js delete mode 100644 src/wp-includes/js/jquery/ui/effect.js delete mode 100644 src/wp-includes/js/jquery/ui/menu.js delete mode 100644 src/wp-includes/js/jquery/ui/mouse.js delete mode 100644 src/wp-includes/js/jquery/ui/position.js delete mode 100644 src/wp-includes/js/jquery/ui/progressbar.js delete mode 100644 src/wp-includes/js/jquery/ui/resizable.js delete mode 100644 src/wp-includes/js/jquery/ui/selectable.js delete mode 100644 src/wp-includes/js/jquery/ui/selectmenu.js delete mode 100644 src/wp-includes/js/jquery/ui/slider.js delete mode 100644 src/wp-includes/js/jquery/ui/sortable.js delete mode 100644 src/wp-includes/js/jquery/ui/spinner.js delete mode 100644 src/wp-includes/js/jquery/ui/tabs.js delete mode 100644 src/wp-includes/js/jquery/ui/tooltip.js delete mode 100644 src/wp-includes/js/jquery/ui/widget.js delete mode 100644 src/wp-includes/js/masonry.min.js delete mode 100644 src/wp-includes/js/media-audiovideo.js delete mode 100644 src/wp-includes/js/media-grid.js delete mode 100644 src/wp-includes/js/media-models.js delete mode 100644 src/wp-includes/js/media-views.js delete mode 100644 src/wp-includes/js/media/grid.manifest.js delete mode 100644 src/wp-includes/js/media/views.manifest.js delete mode 100644 src/wp-includes/js/twemoji.js delete mode 100644 src/wp-includes/js/underscore.js delete mode 100644 src/wp-includes/js/underscore.min.js diff --git a/.gitignore b/.gitignore index 785ce9dd23..fcccc17759 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,6 @@ wp-tests-config.php /tests/phpunit/build /wp-cli.local.yml /jsdoc -/vendor # Files and folders that get created in wp-content /src/wp-content/blogs.dir @@ -58,3 +57,6 @@ wp-tests-config.php *.patch *.diff .svn + +vendor +!/src/js/_enqueues/vendor diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..1dab4ed4c3 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +save-exact = true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..b009dfb9d9 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/Gruntfile.js b/Gruntfile.js index a551b308be..51e2c5a3fd 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -83,6 +83,7 @@ module.exports = function(grunt) { }, clean: { all: [BUILD_DIR], + js: [BUILD_DIR + 'wp-admin/js/', BUILD_DIR + 'wp-includes/js/'], dynamic: { dot: true, expand: true, @@ -92,6 +93,17 @@ module.exports = function(grunt) { tinymce: ['<%= concat.tinymce.dest %>'], qunit: ['tests/qunit/compiled.html'] }, + file_append: { + default_options: { + files: [ + { + append: 'jQuery.noConflict();', + input: './build/wp-includes/js/jquery/jquery.js', + output: './build/wp-includes/js/jquery/jquery.js' + } + ] + } + }, copy: { files: { files: [ @@ -101,24 +113,169 @@ module.exports = function(grunt) { cwd: SOURCE_DIR, src: [ '**', - '!wp-includes/js/media/**', + '!js/**', // JavaScript is extracted into separate copy tasks. '!**/.{svn,git}/**', // Ignore version control directories. - // Ignore unminified versions of external libs we don't ship: - '!wp-includes/js/backbone.js', - '!wp-includes/js/underscore.js', - '!wp-includes/js/jquery/jquery.masonry.js', - '!wp-includes/js/jquery/ui/*.js', - '!wp-includes/js/tinymce/tinymce.js', - '!wp-includes/version.php' // Exclude version.php + '!wp-includes/version.php', // Exclude version.php + '!index.php', '!wp-admin/index.php', + '!_index.php', '!wp-admin/_index.php' ], dest: BUILD_DIR }, { src: 'wp-config-sample.php', dest: BUILD_DIR + }, + { + 'build/index.php': ['src/_index.php'], + 'build/wp-admin/index.php': ['src/wp-admin/_index.php'] } ] }, + 'npm-packages': { + files: { + 'build/wp-includes/js/backbone.js': ['./node_modules/backbone/backbone.js'], + 'build/wp-includes/js/hoverIntent.js': ['./node_modules/jquery-hoverintent/jquery.hoverIntent.js'], + 'build/wp-includes/js/imagesloaded.min.js': ['./node_modules/imagesloaded/imagesloaded.pkgd.min.js'], + 'build/wp-includes/js/jquery/jquery-migrate.js': ['./node_modules/jquery-migrate/dist/jquery-migrate.js'], + 'build/wp-includes/js/jquery/jquery-migrate.min.js': ['./node_modules/jquery-migrate/dist/jquery-migrate.min.js'], + 'build/wp-includes/js/jquery/jquery.form.js': ['./node_modules/jquery-form/src/jquery.form.js'], + 'build/wp-includes/js/jquery/jquery.form.min.js': ['./node_modules/jquery-form/dist/jquery.form.min.js'], + 'build/wp-includes/js/jquery/jquery.js': ['./node_modules/jquery/dist/jquery.min.js'], + 'build/wp-includes/js/masonry.min.js': ['./node_modules/masonry-layout/dist/masonry.pkgd.min.js'], + 'build/wp-includes/js/twemoji.js': ['./node_modules/twemoji/2/twemoji.js'], + 'build/wp-includes/js/underscore.min.js': ['./node_modules/underscore/underscore-min.js'] + } + }, + 'vendor-js': { + files: [ + { + expand: true, + cwd: SOURCE_DIR + 'js/_enqueues/vendor/', + src: [ + '**/*', + '!farbtastic.js', + '!iris.min.js', + '!deprecated/**', + '!README.md', + // Ignore unminified version of vendor lib we don't ship. + '!jquery/jquery.masonry.js', + '!tinymce/tinymce.js' + ], + dest: 'build/wp-includes/js/' + }, + { + expand: true, + cwd: SOURCE_DIR + 'js/_enqueues/vendor/', + src: [ + 'farbtastic.js', + 'iris.min.js' + ], + dest: 'build/wp-admin/js/' + }, + { + expand: true, + cwd: SOURCE_DIR + 'js/_enqueues/vendor/deprecated', + src: [ + 'suggest*' + ], + dest: 'build/wp-includes/js/jquery/' + } + ] + }, + 'admin-js': { + files: { + 'build/wp-admin/js/accordion.js': ['./src/js/_enqueues/lib/accordion.js'], + 'build/wp-admin/js/code-editor.js': ['./src/js/_enqueues/wp/code-editor.js'], + 'build/wp-admin/js/color-picker.js': ['./src/js/_enqueues/lib/color-picker.js'], + 'build/wp-admin/js/comment.js': ['./src/js/_enqueues/admin/comment.js'], + 'build/wp-admin/js/common.js': ['./src/js/_enqueues/admin/common.js'], + 'build/wp-admin/js/custom-background.js': ['./src/js/_enqueues/admin/custom-background.js'], + 'build/wp-admin/js/custom-header.js': ['./src/js/_enqueues/admin/custom-header.js'], + 'build/wp-admin/js/customize-controls.js': ['./src/js/_enqueues/wp/customize/controls.js'], + 'build/wp-admin/js/customize-nav-menus.js': ['./src/js/_enqueues/wp/customize/nav-menus.js'], + 'build/wp-admin/js/customize-widgets.js': ['./src/js/_enqueues/wp/customize/widgets.js'], + 'build/wp-admin/js/dashboard.js': ['./src/js/_enqueues/wp/dashboard.js'], + 'build/wp-admin/js/edit-comments.js': ['./src/js/_enqueues/admin/edit-comments.js'], + 'build/wp-admin/js/editor-expand.js': ['./src/js/_enqueues/wp/editor/dfw.js'], + 'build/wp-admin/js/editor.js': ['./src/js/_enqueues/wp/editor/base.js'], + 'build/wp-admin/js/gallery.js': ['./src/js/_enqueues/lib/gallery.js'], + 'build/wp-admin/js/image-edit.js': ['./src/js/_enqueues/lib/image-edit.js'], + 'build/wp-admin/js/inline-edit-post.js': ['./src/js/_enqueues/admin/inline-edit-post.js'], + 'build/wp-admin/js/inline-edit-tax.js': ['./src/js/_enqueues/admin/inline-edit-tax.js'], + 'build/wp-admin/js/language-chooser.js': ['./src/js/_enqueues/lib/language-chooser.js'], + 'build/wp-admin/js/link.js': ['./src/js/_enqueues/admin/link.js'], + 'build/wp-admin/js/media-gallery.js': ['./src/js/_enqueues/deprecated/media-gallery.js'], + 'build/wp-admin/js/media-upload.js': ['./src/js/_enqueues/admin/media-upload.js'], + 'build/wp-admin/js/media.js': ['./src/js/_enqueues/admin/media.js'], + 'build/wp-admin/js/nav-menu.js': ['./src/js/_enqueues/lib/nav-menu.js'], + 'build/wp-admin/js/password-strength-meter.js': ['./src/js/_enqueues/wp/password-strength-meter.js'], + 'build/wp-admin/js/plugin-install.js': ['./src/js/_enqueues/admin/plugin-install.js'], + 'build/wp-admin/js/post.js': ['./src/js/_enqueues/admin/post.js'], + 'build/wp-admin/js/postbox.js': ['./src/js/_enqueues/admin/postbox.js'], + 'build/wp-admin/js/revisions.js': ['./src/js/_enqueues/wp/revisions.js'], + 'build/wp-admin/js/set-post-thumbnail.js': ['./src/js/_enqueues/admin/set-post-thumbnail.js'], + 'build/wp-admin/js/svg-painter.js': ['./src/js/_enqueues/wp/svg-painter.js'], + 'build/wp-admin/js/tags-box.js': ['./src/js/_enqueues/admin/tags-box.js'], + 'build/wp-admin/js/tags-suggest.js': ['./src/js/_enqueues/admin/tags-suggest.js'], + 'build/wp-admin/js/tags.js': ['./src/js/_enqueues/admin/tags.js'], + 'build/wp-admin/js/theme-plugin-editor.js': ['./src/js/_enqueues/wp/theme-plugin-editor.js'], + 'build/wp-admin/js/theme.js': ['./src/js/_enqueues/wp/theme.js'], + 'build/wp-admin/js/updates.js': ['./src/js/_enqueues/wp/updates.js'], + 'build/wp-admin/js/user-profile.js': ['./src/js/_enqueues/admin/user-profile.js'], + 'build/wp-admin/js/user-suggest.js': ['./src/js/_enqueues/lib/user-suggest.js'], + 'build/wp-admin/js/widgets/custom-html-widgets.js': ['./src/js/_enqueues/wp/widgets/custom-html.js'], + 'build/wp-admin/js/widgets/media-audio-widget.js': ['./src/js/_enqueues/wp/widgets/media-audio.js'], + 'build/wp-admin/js/widgets/media-gallery-widget.js': ['./src/js/_enqueues/wp/widgets/media-gallery.js'], + 'build/wp-admin/js/widgets/media-image-widget.js': ['./src/js/_enqueues/wp/widgets/media-image.js'], + 'build/wp-admin/js/widgets/media-video-widget.js': ['./src/js/_enqueues/wp/widgets/media-video.js'], + 'build/wp-admin/js/widgets/media-widgets.js': ['./src/js/_enqueues/wp/widgets/media.js'], + 'build/wp-admin/js/widgets/text-widgets.js': ['./src/js/_enqueues/wp/widgets/text.js'], + 'build/wp-admin/js/widgets.js': ['./src/js/_enqueues/admin/widgets.js'], + 'build/wp-admin/js/word-count.js': ['./src/js/_enqueues/wp/utils/word-count.js'], + 'build/wp-admin/js/wp-fullscreen-stub.js': ['./src/js/_enqueues/deprecated/fullscreen-stub.js'], + 'build/wp-admin/js/xfn.js': ['./src/js/_enqueues/admin/xfn.js'] + } + }, + 'includes-js': { + files: { + 'build/wp-includes/js/admin-bar.js': ['./src/js/_enqueues/lib/admin-bar.js'], + 'build/wp-includes/js/api-request.js': ['./src/js/_enqueues/wp/api-request.js'], + 'build/wp-includes/js/autosave.js': ['./src/js/_enqueues/wp/autosave.js'], + 'build/wp-includes/js/comment-reply.js': ['./src/js/_enqueues/lib/comment-reply.js'], + 'build/wp-includes/js/customize-base.js': ['./src/js/_enqueues/wp/customize/base.js'], + 'build/wp-includes/js/customize-loader.js': ['./src/js/_enqueues/wp/customize/loader.js'], + 'build/wp-includes/js/customize-models.js': ['./src/js/_enqueues/wp/customize/models.js'], + 'build/wp-includes/js/customize-preview-nav-menus.js': ['./src/js/_enqueues/wp/customize/preview-nav-menus.js'], + 'build/wp-includes/js/customize-preview-widgets.js': ['./src/js/_enqueues/wp/customize/preview-widgets.js'], + 'build/wp-includes/js/customize-preview.js': ['./src/js/_enqueues/wp/customize/preview.js'], + 'build/wp-includes/js/customize-selective-refresh.js': ['./src/js/_enqueues/wp/customize/selective-refresh.js'], + 'build/wp-includes/js/customize-views.js': ['./src/js/_enqueues/wp/customize/views.js'], + 'build/wp-includes/js/heartbeat.js': ['./src/js/_enqueues/wp/heartbeat.js'], + 'build/wp-includes/js/mce-view.js': ['./src/js/_enqueues/wp/mce-view.js'], + 'build/wp-includes/js/media-editor.js': ['./src/js/_enqueues/wp/media/editor.js'], + 'build/wp-includes/js/quicktags.js': ['./src/js/_enqueues/lib/quicktags.js'], + 'build/wp-includes/js/shortcode.js': ['./src/js/_enqueues/wp/shortcode.js'], + 'build/wp-includes/js/utils.js': ['./src/js/_enqueues/lib/cookies.js'], + 'build/wp-includes/js/wp-a11y.js': ['./src/js/_enqueues/wp/a11y.js'], + 'build/wp-includes/js/wp-ajax-response.js': ['./src/js/_enqueues/lib/ajax-response.js'], + 'build/wp-includes/js/wp-api.js': ['./src/js/_enqueues/wp/api.js'], + 'build/wp-includes/js/wp-auth-check.js': ['./src/js/_enqueues/lib/auth-check.js'], + 'build/wp-includes/js/wp-backbone.js': ['./src/js/_enqueues/wp/backbone.js'], + 'build/wp-includes/js/wp-custom-header.js': ['./src/js/_enqueues/wp/custom-header.js'], + 'build/wp-includes/js/wp-embed-template.js': ['./src/js/_enqueues/lib/embed-template.js'], + 'build/wp-includes/js/wp-embed.js': ['./src/js/_enqueues/wp/embed.js'], + 'build/wp-includes/js/wp-emoji-loader.js': ['./src/js/_enqueues/lib/emoji-loader.js'], + 'build/wp-includes/js/wp-emoji.js': ['./src/js/_enqueues/wp/emoji.js'], + 'build/wp-includes/js/wp-list-revisions.js': ['./src/js/_enqueues/lib/list-revisions.js'], + 'build/wp-includes/js/wp-lists.js': ['./src/js/_enqueues/lib/lists.js'], + 'build/wp-includes/js/wp-pointer.js': ['./src/js/_enqueues/lib/pointer.js'], + 'build/wp-includes/js/wp-sanitize.js': ['./src/js/_enqueues/wp/sanitize.js'], + 'build/wp-includes/js/wp-util.js': ['./src/js/_enqueues/wp/util.js'], + 'build/wp-includes/js/wpdialog.js': ['./src/js/_enqueues/lib/dialog.js'], + 'build/wp-includes/js/wplink.js': ['./src/js/_enqueues/lib/link.js'], + 'build/wp-includes/js/zxcvbn-async.js': ['./src/js/_enqueues/lib/zxcvbn-async.js'] + } + }, 'wp-admin-css-compat-rtl': { options: { processContent: function( src ) { @@ -169,12 +326,15 @@ module.exports = function(grunt) { dest: BUILD_DIR, src: [] }, + 'dynamic-js': { + files: {} + }, qunit: { src: 'tests/qunit/index.html', dest: 'tests/qunit/compiled.html', options: { processContent: function( src ) { - return src.replace( /(\".+?\/)src(\/.+?)(?:.min)?(.js\")/g , function( match, $1, $2, $3 ) { + return src.replace( /(\".+?\/)build(\/.+?)(?:.min)?(.js\")/g , function( match, $1, $2, $3 ) { // Don't add `.min` to files that don't have it. return $1 + 'build' + $2 + ( /jquery$/.test( $2 ) ? '' : '.min' ) + $3; } ); @@ -200,7 +360,7 @@ module.exports = function(grunt) { }, core: { expand: true, - cwd: SOURCE_DIR, + cwd: BUILD_DIR, dest: BUILD_DIR, ext: '.min.css', src: [ @@ -343,38 +503,16 @@ module.exports = function(grunt) { }, media: { src: [ - SOURCE_DIR + 'wp-includes/js/media/**/*.js' + SOURCE_DIR + 'js/media/**/*.js' ] }, core: { expand: true, cwd: SOURCE_DIR, src: [ - 'wp-admin/js/**/*.js', - 'wp-includes/js/*.js', - // Built scripts. - '!wp-includes/js/media-*', - // WordPress scripts inside directories - 'wp-includes/js/jquery/jquery.table-hotkeys.js', - 'wp-includes/js/mediaelement/mediaelement-migrate.js', - 'wp-includes/js/mediaelement/wp-mediaelement.js', - 'wp-includes/js/mediaelement/wp-playlist.js', - 'wp-includes/js/plupload/handlers.js', - 'wp-includes/js/plupload/wp-plupload.js', - 'wp-includes/js/tinymce/plugins/wordpress/plugin.js', - 'wp-includes/js/tinymce/plugins/wp*/plugin.js', + 'js/_enqueues/**/*.js', // Third party scripts - '!wp-includes/js/codemirror/*.js', - '!wp-admin/js/farbtastic.js', - '!wp-includes/js/backbone*.js', - '!wp-includes/js/swfobject.js', - '!wp-includes/js/underscore*.js', - '!wp-includes/js/colorpicker.js', - '!wp-includes/js/hoverIntent.js', - '!wp-includes/js/json2.js', - '!wp-includes/js/tw-sack.js', - '!wp-includes/js/twemoji.js', - '!**/*.min.js' + '!js/_enqueues/vendor/**/*.js' ], // Remove once other JSHint errors are resolved options: { @@ -487,7 +625,7 @@ module.exports = function(grunt) { }, core: { expand: true, - cwd: SOURCE_DIR, + cwd: BUILD_DIR, dest: BUILD_DIR, ext: '.min.js', src: [ @@ -501,14 +639,10 @@ module.exports = function(grunt) { 'wp-includes/js/tinymce/plugins/wp*/plugin.js', // Exceptions + '!**/*.min.js', '!wp-admin/js/custom-header.js', // Why? We should minify this. '!wp-admin/js/farbtastic.js', - '!wp-admin/js/iris.min.js', - '!wp-includes/js/backbone.*', - '!wp-includes/js/masonry.min.js', '!wp-includes/js/swfobject.js', - '!wp-includes/js/underscore.*', - '!wp-includes/js/zxcvbn.min.js', '!wp-includes/js/wp-embed.js' // We have extra options for this, see uglify:embed ] }, @@ -519,45 +653,32 @@ module.exports = function(grunt) { } }, expand: true, - cwd: SOURCE_DIR, + cwd: BUILD_DIR, dest: BUILD_DIR, ext: '.min.js', src: ['wp-includes/js/wp-embed.js'] }, - media: { - expand: true, - cwd: SOURCE_DIR, - dest: BUILD_DIR, - ext: '.min.js', - src: [ - 'wp-includes/js/media-audiovideo.js', - 'wp-includes/js/media-grid.js', - 'wp-includes/js/media-models.js', - 'wp-includes/js/media-views.js' - ] - }, jqueryui: { options: { // Preserve comments that start with a bang. preserveComments: /^!/ }, expand: true, - cwd: SOURCE_DIR, - dest: BUILD_DIR, + cwd: 'node_modules/jquery-ui/ui/', + dest: BUILD_DIR + 'wp-includes/js/jquery/ui/', ext: '.min.js', - src: ['wp-includes/js/jquery/ui/*.js'] - }, - masonry: { - options: { - // Preserve comments that start with a bang. - preserveComments: /^!/ - }, - src: SOURCE_DIR + 'wp-includes/js/jquery/jquery.masonry.js', - dest: SOURCE_DIR + 'wp-includes/js/jquery/jquery.masonry.min.js' + src: ['*.js'] }, imgareaselect: { - src: SOURCE_DIR + 'wp-includes/js/imgareaselect/jquery.imgareaselect.js', - dest: SOURCE_DIR + 'wp-includes/js/imgareaselect/jquery.imgareaselect.min.js' + src: BUILD_DIR + 'wp-includes/js/imgareaselect/jquery.imgareaselect.js', + dest: BUILD_DIR + 'wp-includes/js/imgareaselect/jquery.imgareaselect.min.js' + }, + dynamic: { + expand: true, + cwd: BUILD_DIR, + dest: BUILD_DIR, + ext: '.min.js', + src: [] } }, webpack: { @@ -603,6 +724,195 @@ module.exports = function(grunt) { dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js.gz' } }, + patch:{ + options: { + file_mappings: { + 'src/wp-admin/js/accordion.js': 'src/js/_enqueues/lib/accordion.js', + 'src/wp-admin/js/code-editor.js': 'src/js/_enqueues/wp/code-editor.js', + 'src/wp-admin/js/color-picker.js': 'src/js/_enqueues/lib/color-picker.js', + 'src/wp-admin/js/comment.js': 'src/js/_enqueues/admin/comment.js', + 'src/wp-admin/js/common.js': 'src/js/_enqueues/admin/common.js', + 'src/wp-admin/js/custom-background.js': 'src/js/_enqueues/admin/custom-background.js', + 'src/wp-admin/js/custom-header.js': 'src/js/_enqueues/admin/custom-header.js', + 'src/wp-admin/js/customize-controls.js': 'src/js/_enqueues/wp/customize/controls.js', + 'src/wp-admin/js/customize-nav-menus.js': 'src/js/_enqueues/wp/customize/nav-menus.js', + 'src/wp-admin/js/customize-widgets.js': 'src/js/_enqueues/wp/customize/widgets.js', + 'src/wp-admin/js/dashboard.js': 'src/js/_enqueues/wp/dashboard.js', + 'src/wp-admin/js/edit-comments.js': 'src/js/_enqueues/admin/edit-comments.js', + 'src/wp-admin/js/editor-expand.js': 'src/js/_enqueues/wp/editor/dfw.js', + 'src/wp-admin/js/editor.js': 'src/js/_enqueues/wp/editor/base.js', + 'src/wp-admin/js/gallery.js': 'src/js/_enqueues/lib/gallery.js', + 'src/wp-admin/js/image-edit.js': 'src/js/_enqueues/lib/image-edit.js', + 'src/wp-admin/js/inline-edit-post.js': 'src/js/_enqueues/admin/inline-edit-post.js', + 'src/wp-admin/js/inline-edit-tax.js': 'src/js/_enqueues/admin/inline-edit-tax.js', + 'src/wp-admin/js/language-chooser.js': 'src/js/_enqueues/lib/language-chooser.js', + 'src/wp-admin/js/link.js': 'src/js/_enqueues/admin/link.js', + 'src/wp-admin/js/media-gallery.js': 'src/js/_enqueues/deprecated/media-gallery.js', + 'src/wp-admin/js/media-upload.js': 'src/js/_enqueues/admin/media-upload.js', + 'src/wp-admin/js/media.js': 'src/js/_enqueues/admin/media.js', + 'src/wp-admin/js/nav-menu.js': 'src/js/_enqueues/lib/nav-menu.js', + 'src/wp-admin/js/password-strength-meter.js': 'src/js/_enqueues/wp/password-strength-meter.js', + 'src/wp-admin/js/plugin-install.js': 'src/js/_enqueues/admin/plugin-install.js', + 'src/wp-admin/js/post.js': 'src/js/_enqueues/admin/post.js', + 'src/wp-admin/js/postbox.js': 'src/js/_enqueues/admin/postbox.js', + 'src/wp-admin/js/revisions.js': 'src/js/_enqueues/wp/revisions.js', + 'src/wp-admin/js/set-post-thumbnail.js': 'src/js/_enqueues/admin/set-post-thumbnail.js', + 'src/wp-admin/js/svg-painter.js': 'src/js/_enqueues/wp/svg-painter.js', + 'src/wp-admin/js/tags-box.js': 'src/js/_enqueues/admin/tags-box.js', + 'src/wp-admin/js/tags-suggest.js': 'src/js/_enqueues/admin/tags-suggest.js', + 'src/wp-admin/js/tags.js': 'src/js/_enqueues/admin/tags.js', + 'src/wp-admin/js/theme-plugin-editor.js': 'src/js/_enqueues/wp/theme-plugin-editor.js', + 'src/wp-admin/js/theme.js': 'src/js/_enqueues/wp/theme.js', + 'src/wp-admin/js/updates.js': 'src/js/_enqueues/wp/updates.js', + 'src/wp-admin/js/user-profile.js': 'src/js/_enqueues/admin/user-profile.js', + 'src/wp-admin/js/user-suggest.js': 'src/js/_enqueues/lib/user-suggest.js', + 'src/wp-admin/js/widgets/custom-html-widgets.js': 'src/js/_enqueues/wp/widgets/custom-html.js', + 'src/wp-admin/js/widgets/media-audio-widget.js': 'src/js/_enqueues/wp/widgets/media-audio.js', + 'src/wp-admin/js/widgets/media-gallery-widget.js': 'src/js/_enqueues/wp/widgets/media-gallery.js', + 'src/wp-admin/js/widgets/media-image-widget.js': 'src/js/_enqueues/wp/widgets/media-image.js', + 'src/wp-admin/js/widgets/media-video-widget.js': 'src/js/_enqueues/wp/widgets/media-video.js', + 'src/wp-admin/js/widgets/media-widgets.js': 'src/js/_enqueues/wp/widgets/media.js', + 'src/wp-admin/js/widgets/text-widgets.js': 'src/js/_enqueues/wp/widgets/text.js', + 'src/wp-admin/js/widgets.js': 'src/js/_enqueues/admin/widgets.js', + 'src/wp-admin/js/word-count.js': 'src/js/_enqueues/wp/utils/word-count.js', + 'src/wp-admin/js/wp-fullscreen-stub.js': 'src/js/_enqueues/deprecated/fullscreen-stub.js', + 'src/wp-admin/js/xfn.js': 'src/js/_enqueues/admin/xfn.js', + 'src/wp-includes/js/admin-bar.js': 'src/js/_enqueues/lib/admin-bar.js', + 'src/wp-includes/js/api-request.js': 'src/js/_enqueues/wp/api-request.js', + 'src/wp-includes/js/autosave.js': 'src/js/_enqueues/wp/autosave.js', + 'src/wp-includes/js/comment-reply.js': 'src/js/_enqueues/lib/comment-reply.js', + 'src/wp-includes/js/customize-base.js': 'src/js/_enqueues/wp/customize/base.js', + 'src/wp-includes/js/customize-loader.js': 'src/js/_enqueues/wp/customize/loader.js', + 'src/wp-includes/js/customize-models.js': 'src/js/_enqueues/wp/customize/models.js', + 'src/wp-includes/js/customize-preview-nav-menus.js': 'src/js/_enqueues/wp/customize/preview-nav-menus.js', + 'src/wp-includes/js/customize-preview-widgets.js': 'src/js/_enqueues/wp/customize/preview-widgets.js', + 'src/wp-includes/js/customize-preview.js': 'src/js/_enqueues/wp/customize/preview.js', + 'src/wp-includes/js/customize-selective-refresh.js': 'src/js/_enqueues/wp/customize/selective-refresh.js', + 'src/wp-includes/js/customize-views.js': 'src/js/_enqueues/wp/customize/views.js', + 'src/wp-includes/js/heartbeat.js': 'src/js/_enqueues/wp/heartbeat.js', + 'src/wp-includes/js/mce-view.js': 'src/js/_enqueues/wp/mce-view.js', + 'src/wp-includes/js/media-editor.js': 'src/js/_enqueues/wp/media/editor.js', + 'src/wp-includes/js/quicktags.js': 'src/js/_enqueues/lib/quicktags.js', + 'src/wp-includes/js/shortcode.js': 'src/js/_enqueues/wp/shortcode.js', + 'src/wp-includes/js/utils.js': 'src/js/_enqueues/lib/cookies.js', + 'src/wp-includes/js/wp-a11y.js': 'src/js/_enqueues/wp/a11y.js', + 'src/wp-includes/js/wp-ajax-response.js': 'src/js/_enqueues/lib/ajax-response.js', + 'src/wp-includes/js/wp-api.js': 'src/js/_enqueues/wp/api.js', + 'src/wp-includes/js/wp-auth-check.js': 'src/js/_enqueues/lib/auth-check.js', + 'src/wp-includes/js/wp-backbone.js': 'src/js/_enqueues/wp/backbone.js', + 'src/wp-includes/js/wp-custom-header.js': 'src/js/_enqueues/wp/custom-header.js', + 'src/wp-includes/js/wp-embed-template.js': 'src/js/_enqueues/lib/embed-template.js', + 'src/wp-includes/js/wp-embed.js': 'src/js/_enqueues/wp/embed.js', + 'src/wp-includes/js/wp-emoji-loader.js': 'src/js/_enqueues/lib/emoji-loader.js', + 'src/wp-includes/js/wp-emoji.js': 'src/js/_enqueues/wp/emoji.js', + 'src/wp-includes/js/wp-list-revisions.js': 'src/js/_enqueues/lib/list-revisions.js', + 'src/wp-includes/js/wp-lists.js': 'src/js/_enqueues/lib/lists.js', + 'src/wp-includes/js/wp-pointer.js': 'src/js/_enqueues/lib/pointer.js', + 'src/wp-includes/js/wp-sanitize.js': 'src/js/_enqueues/wp/sanitize.js', + 'src/wp-includes/js/wp-util.js': 'src/js/_enqueues/wp/util.js', + 'src/wp-includes/js/wpdialog.js': 'src/js/_enqueues/lib/dialog.js', + 'src/wp-includes/js/wplink.js': 'src/js/_enqueues/lib/link.js', + 'src/wp-includes/js/zxcvbn-async.js': 'src/js/_enqueues/lib/zxcvbn-async.js', + 'src/wp-includes/js/media/controllers/audio-details.js' : 'src/js/media/controllers/audio-details.js', + 'src/wp-includes/js/media/controllers/collection-add.js' : 'src/js/media/controllers/collection-add.js', + 'src/wp-includes/js/media/controllers/collection-edit.js' : 'src/js/media/controllers/collection-edit.js', + 'src/wp-includes/js/media/controllers/cropper.js' : 'src/js/media/controllers/cropper.js', + 'src/wp-includes/js/media/controllers/customize-image-cropper.js' : 'src/js/media/controllers/customize-image-cropper.js', + 'src/wp-includes/js/media/controllers/edit-attachment-metadata.js' : 'src/js/media/controllers/edit-attachment-metadata.js', + 'src/wp-includes/js/media/controllers/edit-image.js' : 'src/js/media/controllers/edit-image.js', + 'src/wp-includes/js/media/controllers/embed.js' : 'src/js/media/controllers/embed.js', + 'src/wp-includes/js/media/controllers/featured-image.js' : 'src/js/media/controllers/featured-image.js', + 'src/wp-includes/js/media/controllers/gallery-add.js' : 'src/js/media/controllers/gallery-add.js', + 'src/wp-includes/js/media/controllers/gallery-edit.js' : 'src/js/media/controllers/gallery-edit.js', + 'src/wp-includes/js/media/controllers/image-details.js' : 'src/js/media/controllers/image-details.js', + 'src/wp-includes/js/media/controllers/library.js' : 'src/js/media/controllers/library.js', + 'src/wp-includes/js/media/controllers/media-library.js' : 'src/js/media/controllers/media-library.js', + 'src/wp-includes/js/media/controllers/region.js' : 'src/js/media/controllers/region.js', + 'src/wp-includes/js/media/controllers/replace-image.js' : 'src/js/media/controllers/replace-image.js', + 'src/wp-includes/js/media/controllers/site-icon-cropper.js' : 'src/js/media/controllers/site-icon-cropper.js', + 'src/wp-includes/js/media/controllers/state-machine.js' : 'src/js/media/controllers/state-machine.js', + 'src/wp-includes/js/media/controllers/state.js' : 'src/js/media/controllers/state.js', + 'src/wp-includes/js/media/controllers/video-details.js' : 'src/js/media/controllers/video-details.js', + 'src/wp-includes/js/media/models/attachment.js' : 'src/js/media/models/attachment.js', + 'src/wp-includes/js/media/models/attachments.js' : 'src/js/media/models/attachments.js', + 'src/wp-includes/js/media/models/post-image.js' : 'src/js/media/models/post-image.js', + 'src/wp-includes/js/media/models/post-media.js' : 'src/js/media/models/post-media.js', + 'src/wp-includes/js/media/models/query.js' : 'src/js/media/models/query.js', + 'src/wp-includes/js/media/models/selection.js' : 'src/js/media/models/selection.js', + 'src/wp-includes/js/media/routers/manage.js' : 'src/js/media/routers/manage.js', + 'src/wp-includes/js/media/utils/selection-sync.js' : 'src/js/media/utils/selection-sync.js', + 'src/wp-includes/js/media/views/attachment-compat.js' : 'src/js/media/views/attachment-compat.js', + 'src/wp-includes/js/media/views/attachment-filters.js' : 'src/js/media/views/attachment-filters.js', + 'src/wp-includes/js/media/views/attachment-filters/all.js' : 'src/js/media/views/attachment-filters/all.js', + 'src/wp-includes/js/media/views/attachment-filters/date.js' : 'src/js/media/views/attachment-filters/date.js', + 'src/wp-includes/js/media/views/attachment-filters/uploaded.js' : 'src/js/media/views/attachment-filters/uploaded.js', + 'src/wp-includes/js/media/views/attachment.js' : 'src/js/media/views/attachment.js', + 'src/wp-includes/js/media/views/attachment/details-two-column.js' : 'src/js/media/views/details-two-column.js', + 'src/wp-includes/js/media/views/attachment/details.js' : 'src/js/media/views/details.js', + 'src/wp-includes/js/media/views/attachment/edit-library.js' : 'src/js/media/views/edit-library.js', + 'src/wp-includes/js/media/views/attachment/edit-selection.js' : 'src/js/media/views/edit-selection.js', + 'src/wp-includes/js/media/views/attachment/library.js' : 'src/js/media/views/library.js', + 'src/wp-includes/js/media/views/attachment/selection.js' : 'src/js/media/views/selection.js', + 'src/wp-includes/js/media/views/attachment/attachments.js' : 'src/js/media/views/attachments.js', + 'src/wp-includes/js/media/views/attachments/browser.js' : 'src/js/media/views/attachments/browser.js', + 'src/wp-includes/js/media/views/attachments/selection.js' : 'src/js/media/views/attachments/selection.js', + 'src/wp-includes/js/media/views/attachments/audio-details.js' : 'src/js/media/views/attachments/audio-details.js', + 'src/wp-includes/js/media/views/attachments/button-group.js' : 'src/js/media/views/attachments/button-group.js', + 'src/wp-includes/js/media/views/attachments/button.js' : 'src/js/media/views/attachments/button.js', + 'src/wp-includes/js/media/views/button/delete-selected-permanently.js' : 'src/js/media/views/button/delete-selected-permanently.js', + 'src/wp-includes/js/media/views/button/delete-selected.js' : 'src/js/media/views/button/delete-selected.js', + 'src/wp-includes/js/media/views/button/select-mode-toggle.js' : 'src/js/media/views/button/select-mode-toggle.js', + 'src/wp-includes/js/media/views/cropper.js' : 'src/js/media/views/cropper.js', + 'src/wp-includes/js/media/views/edit-image-details.js' : 'src/js/media/views/edit-image-details.js', + 'src/wp-includes/js/media/views/edit-image.js' : 'src/js/media/views/edit-image.js', + 'src/wp-includes/js/media/views/embed.js' : 'src/js/media/views/embed.js', + 'src/wp-includes/js/media/views/embed/image.js' : 'src/js/media/views/embed/image.js', + 'src/wp-includes/js/media/views/embed/link.js' : 'src/js/media/views/embed/link.js', + 'src/wp-includes/js/media/views/embed/url.js' : 'src/js/media/views/embed/url.js', + 'src/wp-includes/js/media/views/focus-manager.js' : 'src/js/media/views/focus-manager.js', + 'src/wp-includes/js/media/views/frame.js' : 'src/js/media/views/frame.js', + 'src/wp-includes/js/media/views/frame/audio-details.js' : 'src/js/media/views/frame/audio-details.js', + 'src/wp-includes/js/media/views/frame/edit-attachments.js' : 'src/js/media/views/frame/edit-attachments.js', + 'src/wp-includes/js/media/views/frame/image-details.js' : 'src/js/media/views/frame/image-details.js', + 'src/wp-includes/js/media/views/frame/manage.js' : 'src/js/media/views/frame/manage.js', + 'src/wp-includes/js/media/views/frame/media-details.js' : 'src/js/media/views/frame/media-details.js', + 'src/wp-includes/js/media/views/frame/post.js' : 'src/js/media/views/frame/post.js', + 'src/wp-includes/js/media/views/frame/select.js' : 'src/js/media/views/frame/select.js', + 'src/wp-includes/js/media/views/frame/video-details.js' : 'src/js/media/views/frame/video-details.js', + 'src/wp-includes/js/media/views/iframe.js' : 'src/js/media/views/iframe.js', + 'src/wp-includes/js/media/views/image-details.js' : 'src/js/media/views/image-details.js', + 'src/wp-includes/js/media/views/label.js' : 'src/js/media/views/label.js', + 'src/wp-includes/js/media/views/media-details.js' : 'src/js/media/views/media-details.js', + 'src/wp-includes/js/media/views/media-frame.js' : 'src/js/media/views/media-frame.js', + 'src/wp-includes/js/media/views/menu-item.js' : 'src/js/media/views/menu-item.js', + 'src/wp-includes/js/media/views/menu.js' : 'src/js/media/views/menu.js', + 'src/wp-includes/js/media/views/modal.js' : 'src/js/media/views/modal.js', + 'src/wp-includes/js/media/views/priority-list.js' : 'src/js/media/views/priority-list.js', + 'src/wp-includes/js/media/views/router-item.js' : 'src/js/media/views/router-item.js', + 'src/wp-includes/js/media/views/router.js' : 'src/js/media/views/router.js', + 'src/wp-includes/js/media/views/search.js' : 'src/js/media/views/search.js', + 'src/wp-includes/js/media/views/selection.js' : 'src/js/media/views/selection.js', + 'src/wp-includes/js/media/views/settings.js' : 'src/js/media/views/settings.js', + 'src/wp-includes/js/media/views/settings/attachment-display.js' : 'src/js/media/views/settings/attachment-display.js', + 'src/wp-includes/js/media/views/settings/gallery.js' : 'src/js/media/views/settings/gallery.js', + 'src/wp-includes/js/media/views/settings/playlist.js' : 'src/js/media/views/settings/playlist.js', + 'src/wp-includes/js/media/views/sidebar.js' : 'src/js/media/views/sidebar.js', + 'src/wp-includes/js/media/views/site-icon-cropper.js' : 'src/js/media/views/site-icon-cropper.js', + 'src/wp-includes/js/media/views/site-icon-preview.js' : 'src/js/media/views/site-icon-preview.js', + 'src/wp-includes/js/media/views/spinner.js' : 'src/js/media/views/spinner.js', + 'src/wp-includes/js/media/views/toolbar.js' : 'src/js/media/views/toolbar.js', + 'src/wp-includes/js/media/views/toolbar/embed.js' : 'src/js/media/views/toolbar/embed.js', + 'src/wp-includes/js/media/views/toolbar/select.js' : 'src/js/media/views/toolbar/select.js', + 'src/wp-includes/js/media/views/uploader/editor.js' : 'src/js/media/views/uploader/editor.js', + 'src/wp-includes/js/media/views/uploader/inline.js' : 'src/js/media/views/uploader/inline.js', + 'src/wp-includes/js/media/views/uploader/status-error.js' : 'src/js/media/views/uploader/status-error.js', + 'src/wp-includes/js/media/views/uploader/status.js' : 'src/js/media/views/uploader/status.js', + 'src/wp-includes/js/media/views/uploader/window.js' : 'src/js/media/views/uploader/window.js', + 'src/wp-includes/js/media/views/video-details.js' : 'src/js/media/views/video-details.js', + 'src/wp-includes/js/media/views/view.js' : 'src/js/media/views/view.js' + } + } + }, jsvalidate:{ options: { globals: {}, @@ -616,6 +926,11 @@ module.exports = function(grunt) { BUILD_DIR + 'wp-content/themes/twenty*/**/*.js' ] } + }, + dynamic: { + files: { + src: [] + } } }, imagemin: { @@ -717,7 +1032,7 @@ module.exports = function(grunt) { all: { files: [ SOURCE_DIR + '**', - '!' + SOURCE_DIR + 'wp-includes/js/media/**', + '!' + SOURCE_DIR + 'js/**/*.js', // Ignore version control directories. '!' + SOURCE_DIR + '**/.{svn,git}/**' ], @@ -728,6 +1043,28 @@ module.exports = function(grunt) { interval: 2000 } }, + 'js-enqueues': { + files: [SOURCE_DIR + 'js/_enqueues/**/*.js'], + tasks: ['clean:dynamic', 'copy:dynamic-js', 'uglify:dynamic', 'jsvalidate:dynamic'], + options: { + dot: true, + spawn: false, + interval: 2000 + } + }, + 'js-webpack': { + files: [ + SOURCE_DIR + 'js/**/*.js', + '!' + SOURCE_DIR + 'js/_enqueues/**/*.js', + 'webpack-dev.config.js' + ], + tasks: ['clean:dynamic', 'webpack:dev', 'uglify:dynamic', 'jsvalidate:dynamic'], + options: { + dot: true, + spawn: false, + interval: 2000 + } + }, config: { files: [ 'Gruntfile.js', @@ -802,8 +1139,7 @@ module.exports = function(grunt) { grunt.registerTask( 'watch', function() { if ( ! this.args.length || this.args.indexOf( 'webpack' ) > -1 ) { - - grunt.task.run( 'webpack:dev' ); + grunt.task.run( 'build' ); } grunt.task.run( '_' + this.nameArgs ); @@ -816,7 +1152,6 @@ module.exports = function(grunt) { grunt.registerTask( 'precommit:js', [ 'webpack:prod', 'jshint:corejs', - 'uglify:masonry', 'uglify:imgareaselect', 'qunit:compiled' ] ); @@ -925,27 +1260,57 @@ module.exports = function(grunt) { } } ); + grunt.registerTask( 'copy:js', [ + 'copy:npm-packages', + 'copy:vendor-js', + 'copy:admin-js', + 'copy:includes-js' + ] ); + + grunt.registerTask( 'uglify:all', [ + 'uglify:core', + 'uglify:embed', + 'uglify:jqueryui', + 'uglify:imgareaselect' + ] ); + + grunt.registerTask( 'build:tinymce', [ + 'concat:tinymce', + 'compress:tinymce', + 'clean:tinymce' + ] ); + + grunt.registerTask( 'build:js', [ + 'clean:js', + 'webpack:dev', + 'copy:js', + 'file_append', + 'uglify:all', + 'build:tinymce', + 'concat:emoji', + 'jsvalidate:build' + ] ); + grunt.registerTask( 'copy:all', [ 'copy:files', 'copy:wp-admin-css-compat-rtl', 'copy:wp-admin-css-compat-min', - 'copy:version' + 'copy:version', + 'copy:js' ] ); grunt.registerTask( 'build', [ 'clean:all', + 'webpack:dev', 'copy:all', + 'file_append', 'cssmin:core', 'colors', 'rtl', 'cssmin:rtl', 'cssmin:colors', - 'uglify:core', - 'uglify:embed', - 'uglify:jqueryui', - 'concat:tinymce', - 'compress:tinymce', - 'clean:tinymce', + 'uglify:all', + 'build:tinymce', 'concat:emoji', 'includes:emoji', 'includes:embed', @@ -994,17 +1359,84 @@ module.exports = function(grunt) { grunt.event.on('watch', function( action, filepath, target ) { var src; - if ( [ 'all', 'rtl', 'webpack' ].indexOf( target ) === -1 ) { + // Only configure the dynamic tasks based on known targets. + if ( [ 'all', 'rtl', 'webpack', 'js-enqueues', 'js-webpack' ].indexOf( target ) === -1 ) { return; } - src = [ path.relative( SOURCE_DIR, filepath ) ]; + // If the target is a file in the restructured js src. + if ( target === 'js-enqueues' ) { + var files = {}; + var configs, dest; + + // If it's a vendor file which are configured with glob matchers. + if ( filepath.indexOf( SOURCE_DIR + 'js/_enqueues/vendor/' ) === 0 ) { + // Grab the glob matchers from the copy task. + configs = grunt.config( [ 'copy', 'vendor-js', 'files' ] ); + + // For each glob matcher check if it matches and if so set the variables for our dynamic tasks. + for ( var i = 0; i < configs.length; i++ ) { + var config = configs[ i ]; + var relative = path.relative( config.cwd, filepath ); + var minimatch = require('minimatch'); + + if ( minimatch.match( config.src, relative, {} ) ) { + dest = config.dest + relative; + src = [ path.relative( BUILD_DIR, dest ) ]; + files[ dest ] = [ filepath ]; + break; + } + } + // Or if it's another file which has a straight mapping. + } else { + configs = Object.assign( {}, + grunt.config( [ 'copy', 'admin-js', 'files' ] ), + grunt.config( [ 'copy', 'includes-js', 'files' ] ) + ); + for ( dest in configs ) { + // If a file in the mapping matches then set the variables for our dynamic tasks. + if ( configs.hasOwnProperty( dest ) && configs[ dest ][0] === './' + filepath ) { + files[ dest ] = configs[ dest ]; + src = [ path.relative( BUILD_DIR, dest ) ]; + break; + } + } + } + + // Configure our dynamic-js copy task which uses a file mapping rather than simply copying from src to build. + if ( action !== 'deleted' ) { + grunt.config( [ 'copy', 'dynamic-js', 'files' ], files ); + } + // For the webpack builds configure the jsvalidate task to only check those files build by webpack. + } else if ( target === 'js-webpack' ) { + src = [ + 'wp-includes/js/media-audiovideo.js', + 'wp-includes/js/media-grid.js', + 'wp-includes/js/media-models.js', + 'wp-includes/js/media-views.js' + ]; + // Else simply use the path relative to the source directory. + } else { + src = [ path.relative( SOURCE_DIR, filepath ) ]; + } if ( action === 'deleted' ) { + // Clean up only those files that were deleted. grunt.config( [ 'clean', 'dynamic', 'src' ], src ); } else { + // Otherwise copy over only the changed file. grunt.config( [ 'copy', 'dynamic', 'src' ], src ); + // For javascript also minify and validate the changed file. + if ( target === 'js-enqueues' ) { + grunt.config( [ 'uglify', 'dynamic', 'src' ], src ); + grunt.config( [ 'jsvalidate', 'dynamic', 'files', 'src' ], src.map( function( dir ) { return BUILD_DIR + dir; } ) ); + } + // For webpack only validate the file, minification is handled by webpack itself. + if ( target === 'js-webpack' ) { + grunt.config( [ 'jsvalidate', 'dynamic', 'files', 'src' ], src.map( function( dir ) { return BUILD_DIR + dir; } ) ); + } + // For css run the rtl task on just the changed file. if ( target === 'rtl' ) { grunt.config( [ 'rtlcss', 'dynamic', 'src' ], src ); } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..4489ea694c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11730 @@ +{ + "name": "WordPress", + "version": "5.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + }, + "dependencies": { + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", + "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "3.1.9", + "normalize-path": "2.1.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + } + } + }, + "applause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/applause/-/applause-1.2.2.tgz", + "integrity": "sha1-qEaFeegfZzl7tWNMKZU77c0PVsA=", + "dev": true, + "requires": { + "cson-parser": "1.3.5", + "js-yaml": "3.11.0", + "lodash": "3.10.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "js-yaml": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archive-type": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz", + "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=", + "dev": true, + "requires": { + "file-type": "3.9.0" + } + }, + "archiver": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", + "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", + "dev": true, + "requires": { + "archiver-utils": "1.3.0", + "async": "2.6.0", + "buffer-crc32": "0.2.13", + "glob": "7.1.2", + "lodash": "4.17.5", + "readable-stream": "2.3.5", + "tar-stream": "1.5.5", + "walkdir": "0.0.11", + "zip-stream": "1.2.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, + "requires": { + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lazystream": "1.0.0", + "lodash": "4.17.5", + "normalize-path": "2.1.1", + "readable-stream": "2.3.5" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.5" + } + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "dev": true, + "requires": { + "underscore": "1.7.0", + "underscore.string": "2.4.0" + }, + "dependencies": { + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", + "dev": true + } + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-each-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz", + "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=", + "dev": true, + "optional": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000813", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "babylon": { + "version": "7.0.0-beta.19", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", + "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", + "dev": true + }, + "backbone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.3.3.tgz", + "integrity": "sha1-TMgOp8sWMaxHSInOQPL4vGg7KZk=", + "requires": { + "underscore": "1.8.3" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "base64-js": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", + "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "bin-build": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", + "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=", + "dev": true, + "optional": true, + "requires": { + "archive-type": "3.2.0", + "decompress": "3.0.0", + "download": "4.4.3", + "exec-series": "1.0.3", + "rimraf": "2.2.8", + "tempfile": "1.1.1", + "url-regex": "3.2.0" + } + }, + "bin-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", + "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=", + "dev": true, + "optional": true, + "requires": { + "executable": "1.1.0" + } + }, + "bin-version": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz", + "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=", + "dev": true, + "optional": true, + "requires": { + "find-versions": "1.2.1" + } + }, + "bin-version-check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz", + "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=", + "dev": true, + "optional": true, + "requires": { + "bin-version": "1.0.4", + "minimist": "1.2.0", + "semver": "4.3.6", + "semver-truncate": "1.1.2" + }, + "dependencies": { + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true, + "optional": true + } + } + }, + "bin-wrapper": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", + "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", + "dev": true, + "optional": true, + "requires": { + "bin-check": "2.0.0", + "bin-version-check": "2.1.0", + "download": "4.4.3", + "each-async": "1.1.1", + "lazy-req": "1.1.0", + "os-filter-obj": "1.0.3" + } + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", + "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", + "dev": true, + "requires": { + "bytes": "2.2.0", + "content-type": "1.0.4", + "debug": "2.2.0", + "depd": "1.1.2", + "http-errors": "1.3.1", + "iconv-lite": "0.4.13", + "on-finished": "2.3.0", + "qs": "5.2.0", + "raw-body": "2.1.7", + "type-is": "1.6.16" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "qs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", + "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.2.3", + "multicast-dns-service-types": "1.1.0" + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "dev": true, + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.6" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000813", + "electron-to-chromium": "1.3.36" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.3", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-to-vinyl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", + "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=", + "dev": true, + "requires": { + "file-type": "3.9.0", + "readable-stream": "2.3.5", + "uuid": "2.0.3", + "vinyl": "1.2.0" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", + "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caniuse-db": { + "version": "1.0.30000813", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000813.tgz", + "integrity": "sha1-4KHGA/iICteHsqNWUrJzPzKl4po=", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "catharsis": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", + "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", + "dev": true, + "requires": { + "underscore-contrib": "0.3.0" + } + }, + "caw": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", + "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=", + "dev": true, + "requires": { + "get-proxy": "1.1.0", + "is-obj": "1.0.1", + "object-assign": "3.0.0", + "tunnel-agent": "0.4.3" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.1", + "fsevents": "1.1.3", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.0.4" + }, + "dependencies": { + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "1.1.3" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "clean-css": { + "version": "3.4.28", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", + "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", + "dev": true, + "requires": { + "commander": "2.8.1", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "co": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", + "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "optional": true, + "requires": { + "q": "1.5.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "crc32-stream": "2.0.0", + "normalize-path": "2.1.1", + "readable-stream": "2.3.5" + } + }, + "compressible": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", + "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", + "dev": true, + "requires": { + "mime-db": "1.33.0" + } + }, + "compression": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.2.tgz", + "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", + "dev": true, + "requires": { + "accepts": "1.3.5", + "bytes": "3.0.0", + "compressible": "2.0.13", + "debug": "2.6.9", + "on-headers": "1.0.1", + "safe-buffer": "5.1.1", + "vary": "1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", + "dev": true, + "optional": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "crc": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", + "dev": true + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "3.5.0", + "readable-stream": "2.3.5" + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "1.0.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.10" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "4.1.2", + "which": "1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + } + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.6", + "randomfill": "1.0.4" + } + }, + "cson-parser": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-1.3.5.tgz", + "integrity": "sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=", + "dev": true, + "requires": { + "coffee-script": "1.12.7" + }, + "dependencies": { + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", + "dev": true + } + } + }, + "csso": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz", + "integrity": "sha1-F4tDpEYhIhwndWCG9THgL0KQDug=", + "dev": true, + "optional": true, + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.39" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", + "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=", + "dev": true, + "requires": { + "buffer-to-vinyl": "1.1.0", + "concat-stream": "1.6.1", + "decompress-tar": "3.1.0", + "decompress-tarbz2": "3.1.0", + "decompress-targz": "3.1.0", + "decompress-unzip": "3.4.0", + "stream-combiner2": "1.1.1", + "vinyl-assign": "1.2.1", + "vinyl-fs": "2.4.4" + } + }, + "decompress-tar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", + "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=", + "dev": true, + "requires": { + "is-tar": "1.0.0", + "object-assign": "2.1.1", + "strip-dirs": "1.1.1", + "tar-stream": "1.5.5", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "decompress-tarbz2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", + "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=", + "dev": true, + "requires": { + "is-bzip2": "1.0.0", + "object-assign": "2.1.1", + "seek-bzip": "1.0.5", + "strip-dirs": "1.1.1", + "tar-stream": "1.5.5", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "decompress-targz": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", + "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=", + "dev": true, + "requires": { + "is-gzip": "1.0.0", + "object-assign": "2.1.1", + "strip-dirs": "1.1.1", + "tar-stream": "1.5.5", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "decompress-unzip": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", + "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=", + "dev": true, + "requires": { + "is-zip": "1.0.0", + "read-all-stream": "3.1.0", + "stat-mode": "0.2.2", + "strip-dirs": "1.1.1", + "through2": "2.0.3", + "vinyl": "1.2.0", + "yauzl": "2.9.1" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + } + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, + "deep-for-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/deep-for-each/-/deep-for-each-1.0.6.tgz", + "integrity": "sha1-r6DOJJxYSSqXIFOUeKGNN+GxC64=", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.2.8" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "desandro-get-style-property": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/desandro-get-style-property/-/desandro-get-style-property-1.0.4.tgz", + "integrity": "sha1-9YQsIeo0tjq89pvvNarJVuHFf3k=" + }, + "desandro-matches-selector": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/desandro-matches-selector/-/desandro-matches-selector-1.0.3.tgz", + "integrity": "sha1-4bM3gcTcZU0GzU/FbO5EccKYTSM=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, + "diff": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "1.1.1" + } + }, + "doc-ready": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/doc-ready/-/doc-ready-1.0.4.tgz", + "integrity": "sha1-N/U5GWnP+ZQwP9/vLl1QNX+BZNM=", + "requires": { + "eventie": "1.0.6" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "download": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz", + "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=", + "dev": true, + "requires": { + "caw": "1.2.0", + "concat-stream": "1.6.1", + "each-async": "1.1.1", + "filenamify": "1.2.1", + "got": "5.7.1", + "gulp-decompress": "1.2.0", + "gulp-rename": "1.2.2", + "is-url": "1.2.2", + "object-assign": "4.1.1", + "read-all-stream": "3.1.0", + "readable-stream": "2.3.5", + "stream-combiner2": "1.1.1", + "vinyl": "1.2.0", + "vinyl-fs": "2.4.4", + "ware": "1.3.0" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "2.3.5" + } + }, + "duplexify": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + } + }, + "each-async": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", + "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=", + "dev": true, + "requires": { + "onetime": "1.1.0", + "set-immediate-shim": "1.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.36", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.36.tgz", + "integrity": "sha1-Dqv3Gp6+qQE/scw1o5DgaGJPJ+g=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "1.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es5-ext": { + "version": "0.10.39", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.39.tgz", + "integrity": "sha512-AlaXZhPHl0po/uxMx1tyrlt1O86M6D5iVaDH8UgLfgek4kXTX6vzsRfJQWC2Ku+aG8pkw1XWzh9eTkwfVrsD5g==", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.39", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.39", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.39", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.39" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.39", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.39" + } + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "eventie": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/eventie/-/eventie-1.0.6.tgz", + "integrity": "sha1-1P/IsMK15JPCqhsiy+kY067nRDc=" + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "exec-buffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz", + "integrity": "sha1-ACijG+CxRgth0HX5avRYO54zXqA=", + "dev": true, + "optional": true, + "requires": { + "rimraf": "2.2.8", + "tempfile": "1.1.1" + } + }, + "exec-series": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", + "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=", + "dev": true, + "optional": true, + "requires": { + "async-each-series": "1.1.0", + "object-assign": "4.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.2", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "lru-cache": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + } + } + }, + "executable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", + "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=", + "dev": true, + "optional": true, + "requires": { + "meow": "3.7.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "dev": true, + "requires": { + "accepts": "1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.3", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.16", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.16" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": "2.1.2" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + } + } + }, + "extract-zip": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", + "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "debug": "2.6.9", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "requires": { + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "dev": true + }, + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true, + "requires": { + "filename-reserved-regex": "1.0.0", + "strip-outer": "1.0.0", + "trim-repeated": "1.0.0" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "find-versions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz", + "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=", + "dev": true, + "optional": true, + "requires": { + "array-uniq": "1.0.3", + "get-stdin": "4.0.1", + "meow": "3.7.0", + "semver-regex": "1.0.0" + } + }, + "findup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", + "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", + "dev": true, + "requires": { + "colors": "0.6.2", + "commander": "2.1.0" + }, + "dependencies": { + "commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", + "dev": true + } + } + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "dev": true, + "requires": { + "glob": "3.2.11", + "lodash": "2.4.2" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "fizzy-ui-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fizzy-ui-utils/-/fizzy-ui-utils-1.0.1.tgz", + "integrity": "sha1-qkEGZB51O8ilzqAQMVskiYyTRAw=", + "requires": { + "desandro-matches-selector": "1.0.3", + "doc-ready": "1.0.4" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.9.2", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.2.8" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "requires": { + "globule": "1.2.0" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-proxy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", + "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=", + "dev": true, + "requires": { + "rc": "1.2.5" + } + }, + "get-size": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-size/-/get-size-1.2.2.tgz", + "integrity": "sha1-v8PvHQGeNFCMmU+jJ9GDwoddYuY=", + "requires": { + "desandro-get-style-property": "1.0.4" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "gifsicle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", + "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=", + "dev": true, + "optional": true, + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + } + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + } + }, + "glob-stream": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", + "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", + "dev": true, + "requires": { + "extend": "3.0.1", + "glob": "5.0.15", + "glob-parent": "3.1.0", + "micromatch": "2.3.11", + "ordered-read-streams": "0.3.0", + "through2": "0.6.5", + "to-absolute-glob": "0.1.1", + "unique-stream": "2.2.1" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.5", + "minimatch": "3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "glogg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "got": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", + "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=", + "dev": true, + "requires": { + "create-error-class": "3.0.2", + "duplexer2": "0.1.4", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "node-status-codes": "1.0.0", + "object-assign": "4.1.1", + "parse-json": "2.2.0", + "pinkie-promise": "2.0.1", + "read-all-stream": "3.1.0", + "readable-stream": "2.3.5", + "timed-out": "3.1.3", + "unzip-response": "1.0.2", + "url-parse-lax": "1.0.0" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", + "dev": true, + "requires": { + "async": "0.1.22", + "coffee-script": "1.3.3", + "colors": "0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "0.4.14", + "exit": "0.1.2", + "findup-sync": "0.1.3", + "getobject": "0.1.0", + "glob": "3.1.21", + "grunt-legacy-log": "0.1.3", + "grunt-legacy-util": "0.2.0", + "hooker": "0.2.3", + "iconv-lite": "0.2.11", + "js-yaml": "2.0.5", + "lodash": "0.9.2", + "minimatch": "0.2.14", + "nopt": "1.0.10", + "rimraf": "2.2.8", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-banner": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/grunt-banner/-/grunt-banner-0.6.0.tgz", + "integrity": "sha1-P4eQIdEj+linuloLb7a+QStYhaw=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "grunt-contrib-clean": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", + "integrity": "sha1-ay7ZQRfix//jLuBFeMlv5GJam20=", + "dev": true, + "requires": { + "async": "1.5.2", + "rimraf": "2.6.2" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + } + } + }, + "grunt-contrib-compress": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.3.0.tgz", + "integrity": "sha1-XlwmogBJCCPH93KIr9LXNQ2Vxj0=", + "dev": true, + "requires": { + "archiver": "1.3.0", + "chalk": "1.1.3", + "lodash": "4.17.5", + "pretty-bytes": "3.0.1", + "stream-buffers": "2.2.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } + } + }, + "grunt-contrib-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", + "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "source-map": "0.5.7" + } + }, + "grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "file-sync-cmp": "0.1.1" + } + }, + "grunt-contrib-cssmin": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.2.tgz", + "integrity": "sha1-FzTL09hMpzZHWLflj/GOUqpgu3Y=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "clean-css": "3.4.28", + "maxmin": "1.1.0" + } + }, + "grunt-contrib-imagemin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz", + "integrity": "sha1-5Ho1YTN29MqpwfkERlA8rhyUTXk=", + "dev": true, + "requires": { + "async": "1.5.2", + "chalk": "1.1.3", + "gulp-rename": "1.2.2", + "imagemin": "4.0.0", + "pretty-bytes": "3.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "grunt-contrib-jshint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz", + "integrity": "sha1-MPQFpR3mVr+m6wKbmkZLn+AqQCo=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "hooker": "0.2.3", + "jshint": "2.9.5" + } + }, + "grunt-contrib-qunit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-1.3.0.tgz", + "integrity": "sha1-naxijP1OyBWZhjPbc7Ur2z3byZ4=", + "dev": true, + "requires": { + "grunt-lib-phantomjs": "1.1.0" + } + }, + "grunt-contrib-uglify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.0.0.tgz", + "integrity": "sha1-jJlw1pCTbN5tJaoRk1Sb2SkBaTA=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "lodash.assign": "4.2.0", + "maxmin": "1.1.0", + "uglify-js": "2.7.5", + "uri-path": "1.0.0" + } + }, + "grunt-contrib-watch": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", + "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=", + "dev": true, + "requires": { + "async": "1.5.2", + "gaze": "1.1.2", + "lodash": "3.10.1", + "tiny-lr": "0.2.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "grunt-file-append": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/grunt-file-append/-/grunt-file-append-0.0.7.tgz", + "integrity": "sha1-P376M2lvoFdwsoCU9EUIyvxdLto=", + "dev": true + }, + "grunt-includes": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/grunt-includes/-/grunt-includes-0.5.4.tgz", + "integrity": "sha1-fGyS4LM3rOYjMYHZ+NMWodSY4yk=", + "dev": true + }, + "grunt-jsdoc": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/grunt-jsdoc/-/grunt-jsdoc-2.2.1.tgz", + "integrity": "sha512-33QZYBYjv2Ph3H2ygqXHn/o0ttfptw1f9QciOTgvzhzUeiPrnvzMNUApTPtw22T6zgReE5FZ1RR58U2wnK/l+w==", + "dev": true, + "requires": { + "cross-spawn": "3.0.1", + "jsdoc": "3.5.5", + "marked": "0.3.17" + } + }, + "grunt-jsvalidate": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/grunt-jsvalidate/-/grunt-jsvalidate-0.2.2.tgz", + "integrity": "sha1-/QlEJYiNbmPfqgbPsJ7gUrjrvo8=", + "dev": true, + "requires": { + "esprima": "1.0.4" + } + }, + "grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", + "dev": true, + "requires": { + "colors": "0.6.2", + "grunt-legacy-log-utils": "0.1.1", + "hooker": "0.2.3", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", + "dev": true, + "requires": { + "colors": "0.6.2", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", + "dev": true, + "requires": { + "async": "0.1.22", + "exit": "0.1.2", + "getobject": "0.1.0", + "hooker": "0.2.3", + "lodash": "0.9.2", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-lib-phantomjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz", + "integrity": "sha1-np7c3Z/S3UDgwYHJQ3HVcqpe6tI=", + "dev": true, + "requires": { + "eventemitter2": "0.4.14", + "phantomjs-prebuilt": "2.1.16", + "rimraf": "2.6.2", + "semver": "5.5.0", + "temporary": "0.0.8" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + } + } + }, + "grunt-patch-wordpress": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-patch-wordpress/-/grunt-patch-wordpress-1.0.0.tgz", + "integrity": "sha512-2wvtOqxMhiu7QCujEAvFFvLfUYec0fKDvFRnwKUSHizl5eH8cgXv6t0yc7W4yEeito/u8v8r8fzDHRhXLkIXzA==", + "dev": true, + "requires": { + "grunt": "0.4.5", + "inquirer": "5.2.0", + "request": "2.83.0", + "underscore": "1.8.3", + "underscore.string": "3.3.4", + "xmlrpc": "1.3.2" + }, + "dependencies": { + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3", + "util-deprecate": "1.0.2" + } + } + } + }, + "grunt-postcss": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.7.2.tgz", + "integrity": "sha1-V7dke4d9Qq0yz51M0RAID/+0OKs=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "diff": "2.2.3", + "es6-promise": "3.3.1", + "postcss": "5.2.18" + }, + "dependencies": { + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + } + } + }, + "grunt-replace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-replace/-/grunt-replace-1.0.1.tgz", + "integrity": "sha1-kKeVMvuJBB/kJ8h9QlI4sPiGZRo=", + "dev": true, + "requires": { + "applause": "1.2.2", + "chalk": "1.1.3", + "file-sync-cmp": "0.1.1", + "lodash": "4.17.5" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } + } + }, + "grunt-rtlcss": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-rtlcss/-/grunt-rtlcss-2.0.1.tgz", + "integrity": "sha1-6eYc5DdAY5f546Sxv2aeR+cf/MM=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "rtlcss": "2.2.1" + } + }, + "grunt-sass": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-2.0.0.tgz", + "integrity": "sha1-kHTPnXtFkuIPd4jKpye4+aoGtgo=", + "dev": true, + "requires": { + "each-async": "1.1.1", + "node-sass": "4.7.2", + "object-assign": "4.1.1" + } + }, + "grunt-webpack": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/grunt-webpack/-/grunt-webpack-3.0.2.tgz", + "integrity": "sha512-ghSkdCdvbF1SpI46qDT9FYqw5ZP5sSYbEQU/DwzoJE1K42xizAZ5Rv3kzpaRdJT4yvu8/6fO5+wne3/y0n74QA==", + "dev": true, + "requires": { + "deep-for-each": "1.0.6", + "lodash": "4.17.5" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } + } + }, + "gulp-decompress": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", + "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=", + "dev": true, + "requires": { + "archive-type": "3.2.0", + "decompress": "3.0.0", + "gulp-util": "3.0.8", + "readable-stream": "2.3.5" + } + }, + "gulp-rename": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", + "dev": true + }, + "gulp-sourcemaps": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", + "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", + "dev": true, + "requires": { + "convert-source-map": "1.5.1", + "graceful-fs": "4.1.11", + "strip-bom": "2.0.0", + "through2": "2.0.3", + "vinyl": "1.2.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.2", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + }, + "dependencies": { + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "1.0.1" + } + }, + "gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", + "dev": true, + "requires": { + "browserify-zlib": "0.1.4", + "concat-stream": "1.6.1" + } + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "requires": { + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.5", + "wbuf": "1.7.2" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "statuses": "1.4.0" + } + }, + "http-parser-js": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.11.tgz", + "integrity": "sha512-QCR5O2AjjMW8Mo4HyI1ctFcv+O99j/0g367V3YoVnrNw5hkDvAWZD0lWGcc+F4yN3V55USPCVix4efb75HxFfA==", + "dev": true + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.5", + "micromatch": "2.3.11" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", + "dev": true + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "imagemin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz", + "integrity": "sha1-6Q5/CTaDZZXxj6Ff6Qb0+iWeqEc=", + "dev": true, + "requires": { + "buffer-to-vinyl": "1.1.0", + "concat-stream": "1.6.1", + "imagemin-gifsicle": "4.2.0", + "imagemin-jpegtran": "4.3.2", + "imagemin-optipng": "4.3.0", + "imagemin-svgo": "4.2.1", + "optional": "0.1.4", + "readable-stream": "2.3.5", + "stream-combiner2": "1.1.1", + "vinyl-fs": "2.4.4" + } + }, + "imagemin-gifsicle": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz", + "integrity": "sha1-D++butNHbmt2iFc2zFsLh6CHV8o=", + "dev": true, + "optional": true, + "requires": { + "gifsicle": "3.0.4", + "is-gif": "1.0.0", + "through2": "0.6.5" + } + }, + "imagemin-jpegtran": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz", + "integrity": "sha1-G8bR4r0T/bZNJFUm1jWn5d/rEvw=", + "dev": true, + "optional": true, + "requires": { + "is-jpg": "1.0.0", + "jpegtran-bin": "3.2.0", + "through2": "2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + } + } + }, + "imagemin-optipng": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz", + "integrity": "sha1-dgRmOrLuMVczJ0cm/Rw3TStErbY=", + "dev": true, + "optional": true, + "requires": { + "exec-buffer": "2.0.1", + "is-png": "1.1.0", + "optipng-bin": "3.1.4", + "through2": "0.6.5" + } + }, + "imagemin-svgo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz", + "integrity": "sha1-VPB9xW9HJgRi32phxUvvtEtXvlU=", + "dev": true, + "optional": true, + "requires": { + "is-svg": "1.1.1", + "svgo": "0.6.6", + "through2": "2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + } + } + }, + "imagesloaded": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/imagesloaded/-/imagesloaded-3.2.0.tgz", + "integrity": "sha1-MffAhA3udxhM5v+ega5Rk29OU4Q=", + "requires": { + "eventie": "1.0.6", + "wolfy87-eventemitter": "4.3.0" + } + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "dev": true, + "requires": { + "moment": "2.21.0", + "sanitize-html": "1.18.2" + } + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rxjs": "5.5.10", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "3.7.0" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", + "dev": true, + "optional": true + }, + "ipaddr.js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", + "dev": true + }, + "is-absolute": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", + "dev": true, + "requires": { + "is-relative": "0.1.3" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-bzip2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", + "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=", + "dev": true + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-gif": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz", + "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=", + "dev": true + }, + "is-jpg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz", + "integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=", + "dev": true, + "optional": true + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-natural-number": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", + "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-png": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", + "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=", + "dev": true, + "optional": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-relative": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz", + "integrity": "sha1-rA76r7ZTrFhHNwix+HNjbKEQ4xs=", + "dev": true, + "optional": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-tar": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz", + "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-url": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", + "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", + "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "is-zip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", + "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jpegtran-bin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz", + "integrity": "sha1-9g7PSumZwL2tLp+83ytvCYHnops=", + "dev": true, + "optional": true, + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "jquery": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", + "integrity": "sha1-AeHfuikP5z3rp3zurLD5ui/sngw=" + }, + "jquery-color": { + "version": "github:jquery/jquery-color#95402e5b2f1184ab2de7014aeef0a90f2bee0a40" + }, + "jquery-form": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jquery-form/-/jquery-form-4.2.1.tgz", + "integrity": "sha1-hn00Fct3uOciOqpwHw5IHdFq1cI=", + "requires": { + "jquery": "1.12.4" + } + }, + "jquery-hoverintent": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/jquery-hoverintent/-/jquery-hoverintent-1.8.3.tgz", + "integrity": "sha512-vxxq6pCpUYM0bmgYP+28YT2B31B4eURsmap0orQQwH2BgZCc9UV99ZsP2bO/X9szh9FWPS2JaucROMGHjsbolg==", + "requires": { + "jquery": "1.12.4" + } + }, + "jquery-migrate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jquery-migrate/-/jquery-migrate-1.4.1.tgz", + "integrity": "sha1-hRUvPsmalWJfT30Lz2LpuGOPWnY=", + "dev": true + }, + "jquery-ui": { + "version": "github:jquery/jquery-ui#d6713024e16de90ea71dc0544ba34e1df01b4d8a" + }, + "js-base64": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "dev": true + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "dev": true, + "requires": { + "argparse": "0.1.16", + "esprima": "1.0.4" + } + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true, + "requires": { + "xmlcreate": "1.0.2" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsdoc": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", + "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "dev": true, + "requires": { + "babylon": "7.0.0-beta.19", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.17", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", + "taffydb": "2.6.2", + "underscore": "1.8.3" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "klaw": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", + "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + } + } + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "1.0.1", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "3.0.4", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + } + } + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazy-req": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", + "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=", + "dev": true, + "optional": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "2.3.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "livereload-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", + "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "3.0.1" + } + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "dev": true, + "optional": true, + "requires": { + "figures": "1.7.0", + "squeak": "1.3.0" + } + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "dev": true, + "optional": true, + "requires": { + "get-stdin": "4.0.1", + "indent-string": "2.1.0", + "longest": "1.0.1", + "meow": "3.7.0" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "marked": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", + "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ==", + "dev": true + }, + "masonry-layout": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/masonry-layout/-/masonry-layout-3.3.2.tgz", + "integrity": "sha1-uQwMClCaXtKoBrvIqBEokKdjQbo=", + "requires": { + "fizzy-ui-utils": "1.0.1", + "get-size": "1.2.2", + "outlayer": "1.4.2" + } + }, + "matchdep": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-1.0.1.tgz", + "integrity": "sha1-pXozgESR+64girqPaDgEN6vC3KU=", + "dev": true, + "requires": { + "findup-sync": "0.3.0", + "micromatch": "2.3.11", + "resolve": "1.1.7", + "stack-trace": "0.0.9" + }, + "dependencies": { + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "5.0.15" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "figures": "1.7.0", + "gzip-size": "1.0.0", + "pretty-bytes": "1.0.4" + }, + "dependencies": { + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + } + } + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "0.1.7", + "readable-stream": "2.3.5" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "2.3.5" + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "1.33.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "moment": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "1.3.1", + "thunky": "1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + }, + "dependencies": { + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "1.1.14" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "neo-async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", + "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==", + "dev": true + }, + "node-forge": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=", + "dev": true + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.5", + "request": "2.83.0", + "rimraf": "2.2.8", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.0.9" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.2.0", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.5", + "stream-browserify": "2.0.1", + "stream-http": "2.8.0", + "string_decoder": "1.0.3", + "timers-browserify": "2.0.6", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "1.0.6" + } + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + } + } + }, + "node-sass": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", + "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", + "dev": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.1", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.9.2", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.79.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "commander": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", + "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.15.0", + "is-my-json-valid": "2.17.2", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.4.3", + "uuid": "3.2.1" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + } + } + }, + "node-status-codes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", + "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=", + "dev": true + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + } + } + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "obuf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "opn": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", + "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", + "dev": true, + "requires": { + "is-wsl": "1.1.0" + } + }, + "optional": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", + "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==", + "dev": true + }, + "optipng-bin": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz", + "integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=", + "dev": true, + "optional": true, + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "ordered-read-streams": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", + "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", + "dev": true, + "requires": { + "is-stream": "1.1.0", + "readable-stream": "2.3.5" + } + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "dev": true, + "requires": { + "url-parse": "1.0.5" + }, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "dev": true, + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-filter-obj": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz", + "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=", + "dev": true, + "optional": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "outlayer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/outlayer/-/outlayer-1.4.2.tgz", + "integrity": "sha1-bT81+QeMLLdyqb7JOLXqL8dSv0M=", + "requires": { + "desandro-get-style-property": "1.0.4", + "desandro-matches-selector": "1.0.3", + "doc-ready": "1.0.4", + "eventie": "1.0.6", + "fizzy-ui-utils": "1.0.1", + "get-size": "1.2.2", + "wolfy87-eventemitter": "4.3.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz", + "integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "requires": { + "asn1.js": "4.10.1", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "dev": true, + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "requires": { + "es6-promise": "4.2.4", + "extract-zip": "1.6.6", + "fs-extra": "1.0.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.83.0", + "request-progress": "2.0.1", + "which": "1.3.0" + }, + "dependencies": { + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + } + } + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "dev": true, + "requires": { + "async": "1.5.2", + "debug": "2.6.9", + "mkdirp": "0.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.3", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-bytes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", + "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "dev": true, + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.6.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.13", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + } + } + }, + "rc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.5.tgz", + "integrity": "sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0=", + "dev": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + } + }, + "read-all-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1", + "readable-stream": "2.3.5" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", + "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.5", + "set-immediate-shim": "1.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + }, + "dependencies": { + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + } + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "requires": { + "throttleit": "1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "dev": true, + "requires": { + "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + }, + "dependencies": { + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "rtlcss": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-2.2.1.tgz", + "integrity": "sha512-JjQ5DlrmwiItAjlmhoxrJq5ihgZcE0wMFxt7S17bIrt4Lw0WwKKFk+viRhvodB/0falyG/5fiO043ZDh6/aqTw==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "findup": "0.1.5", + "mkdirp": "0.5.1", + "postcss": "6.0.19", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "source-map": "0.6.1", + "supports-color": "5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rxjs": { + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sanitize-html": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.18.2.tgz", + "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "htmlparser2": "3.9.2", + "lodash.clonedeep": "4.5.0", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mergewith": "4.6.1", + "postcss": "6.0.19", + "srcset": "1.0.0", + "xtend": "4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "postcss": { + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "source-map": "0.6.1", + "supports-color": "5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.5", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "2.4.3", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dev": true, + "requires": { + "commander": "2.8.1" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz", + "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=", + "dev": true, + "requires": { + "node-forge": "0.7.1" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", + "dev": true, + "optional": true + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "dev": true, + "optional": true, + "requires": { + "semver": "5.5.0" + } + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + } + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "1.3.5", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "1.0.3", + "http-errors": "1.6.2", + "mime-types": "2.1.18", + "parseurl": "1.3.2" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "dev": true, + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", + "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "3.2.1" + }, + "dependencies": { + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.2.0" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + } + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.5", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "dev": true, + "optional": true, + "requires": { + "chalk": "1.1.3", + "console-stream": "0.1.1", + "lpad-align": "1.1.2" + } + }, + "srcset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-1.0.0.tgz", + "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", + "dev": true, + "requires": { + "array-uniq": "1.0.3", + "number-is-nan": "1.0.1" + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=", + "dev": true + }, + "stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "requires": { + "readable-stream": "2.3.5" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", + "dev": true + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "0.1.4", + "readable-stream": "2.3.5" + } + }, + "stream-http": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-bom-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", + "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", + "dev": true, + "requires": { + "first-chunk-stream": "1.0.0", + "strip-bom": "2.0.0" + } + }, + "strip-dirs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz", + "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "get-stdin": "4.0.1", + "is-absolute": "0.1.7", + "is-natural-number": "2.1.1", + "minimist": "1.2.0", + "sum-up": "1.0.3" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "strip-outer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", + "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "sum-up": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", + "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "svgo": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz", + "integrity": "sha1-s0CIkDbyD5tEdUMHfQ9Vc+0ETAg=", + "dev": true, + "optional": true, + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.0.0", + "js-yaml": "3.6.1", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "optional": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true, + "optional": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "optional": true, + "requires": { + "argparse": "1.0.10", + "esprima": "2.7.3" + } + } + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-stream": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", + "dev": true, + "requires": { + "bl": "1.2.1", + "end-of-stream": "1.4.1", + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + }, + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "uuid": "2.0.3" + } + }, + "temporary": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz", + "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=", + "dev": true, + "requires": { + "package": "1.0.1" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "dev": true, + "requires": { + "through2": "2.0.3", + "xtend": "4.0.1" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + } + } + }, + "thunky": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", + "dev": true + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timed-out": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", + "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", + "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + }, + "tiny-lr": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", + "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", + "dev": true, + "requires": { + "body-parser": "1.14.2", + "debug": "2.2.0", + "faye-websocket": "0.10.0", + "livereload-js": "2.3.0", + "parseurl": "1.3.2", + "qs": "5.1.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "qs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", + "dev": true + } + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-absolute-glob": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", + "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "twemoji": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-2.5.1.tgz", + "integrity": "sha1-KWZHxhY8fwR0WIccKuviXqj/6DQ=" + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.1.0" + }, + "dependencies": { + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + } + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "dev": true, + "requires": { + "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unique-stream": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "dev": true, + "requires": { + "json-stable-stringify": "1.0.1", + "through2-filter": "2.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "dev": true + }, + "upath": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", + "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==", + "dev": true + }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", + "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", + "dev": true, + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", + "dev": true, + "optional": true, + "requires": { + "ip-regex": "1.0.3" + } + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "0.1.0" + } + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-assign": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz", + "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "readable-stream": "2.3.5" + } + }, + "vinyl-fs": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", + "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", + "dev": true, + "requires": { + "duplexify": "3.5.4", + "glob-stream": "5.3.5", + "graceful-fs": "4.1.11", + "gulp-sourcemaps": "1.6.0", + "is-valid-glob": "0.3.0", + "lazystream": "1.0.0", + "lodash.isequal": "4.5.0", + "merge-stream": "1.0.1", + "mkdirp": "0.5.1", + "object-assign": "4.1.1", + "readable-stream": "2.3.5", + "strip-bom": "2.0.0", + "strip-bom-stream": "1.0.0", + "through2": "2.0.3", + "through2-filter": "2.0.0", + "vali-date": "1.0.0", + "vinyl": "1.2.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", + "dev": true + }, + "ware": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz", + "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=", + "dev": true, + "requires": { + "wrap-fn": "0.1.5" + } + }, + "watchpack": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", + "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", + "dev": true, + "requires": { + "chokidar": "2.0.2", + "graceful-fs": "4.1.11", + "neo-async": "2.5.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "wbuf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "dev": true, + "requires": { + "minimalistic-assert": "1.0.0" + } + }, + "webpack": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", + "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", + "dev": true, + "requires": { + "acorn": "5.5.3", + "acorn-dynamic-import": "2.0.2", + "ajv": "6.2.1", + "ajv-keywords": "3.1.0", + "async": "2.6.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.1.0", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.5.0", + "webpack-sources": "1.1.0", + "yargs": "8.0.2" + }, + "dependencies": { + "ajv": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", + "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", + "dev": true, + "requires": { + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "dev": true, + "requires": { + "memory-fs": "0.4.1", + "mime": "1.6.0", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0", + "time-stamp": "2.0.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "time-stamp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", + "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz", + "integrity": "sha512-zrPoX97bx47vZiAXfDrkw8pe9QjJ+lunQl3dypojyWwWr1M5I2h0VSrMPfTjopHQPRNn+NqfjcMmhoLcUJe2gA==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "array-includes": "3.0.3", + "bonjour": "3.5.0", + "chokidar": "2.0.2", + "compression": "1.7.2", + "connect-history-api-fallback": "1.5.0", + "debug": "3.1.0", + "del": "3.0.0", + "express": "4.16.2", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "import-local": "1.0.0", + "internal-ip": "1.2.0", + "ip": "1.1.5", + "killable": "1.0.0", + "loglevel": "1.6.1", + "opn": "5.2.0", + "portfinder": "1.0.13", + "selfsigned": "1.10.2", + "serve-index": "1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.1.4", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "5.3.0", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": "0.4.11", + "websocket-extensions": "0.1.3" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true, + "optional": true + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "dev": true + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "1.0.2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wolfy87-eventemitter": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-4.3.0.tgz", + "integrity": "sha1-ZJc5bJXnQ1nwa241QJM5MY2Nlk8=" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } + }, + "wrap-fn": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", + "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=", + "dev": true, + "requires": { + "co": "3.1.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "dev": true + }, + "xmlrpc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/xmlrpc/-/xmlrpc-1.3.2.tgz", + "integrity": "sha1-JrLqNHhI0Ciqx+dRS1NRl23j6D0=", + "dev": true, + "requires": { + "sax": "1.2.4", + "xmlbuilder": "8.2.2" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "fd-slicer": "1.0.1" + } + }, + "zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, + "requires": { + "archiver-utils": "1.3.0", + "compress-commons": "1.2.2", + "lodash": "4.17.5", + "readable-stream": "2.3.5" + }, + "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json index 65fe10d3db..1fba6d671e 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "grunt-contrib-qunit": "^1.2.0", "grunt-contrib-uglify": "~2.0.0", "grunt-contrib-watch": "~1.0.0", + "grunt-file-append": "0.0.7", "grunt-includes": "~0.5.1", "grunt-jsdoc": "^2.1.0", "grunt-jsvalidate": "~0.2.2", @@ -36,8 +37,21 @@ "grunt-sass": "2.0.0", "grunt-webpack": "^3.0.2", "ink-docstrap": "^1.3.0", + "jquery-migrate": "1.4.1", "matchdep": "~1.0.0", "webpack": "^3.6.0", "webpack-dev-server": "^2.9.1" + }, + "dependencies": { + "backbone": "1.3.3", + "imagesloaded": "3.2.0", + "jquery": "1.12.4", + "jquery-color": "github:jquery/jquery-color#2.1.1", + "jquery-form": "4.2.1", + "jquery-hoverintent": "1.8.3", + "jquery-ui": "github:jquery/jquery-ui#1.11.4", + "masonry-layout": "3.3.2", + "twemoji": "2.5.1", + "underscore": "1.8.3" } } diff --git a/src/_index.php b/src/_index.php new file mode 100644 index 0000000000..86334797d6 --- /dev/null +++ b/src/_index.php @@ -0,0 +1,17 @@ +src', + 'build' + ) . '

'; +$die .= '

' . sprintf( + /* translators: %s: WordPress */ + __( 'You can build %s by running:' ), + 'WordPress' + ) . '

'; +$die .= '

npm install && grunt build

'; +$die .= '

' . sprintf( + /* translators: %1$s: NPM URL, %2$s: Grunt URL */ + __( 'This requires NPM and Grunt. Read more about setting up your local development environment.' ), + 'https://www.npmjs.com/', + 'https://gruntjs.com/', + __( 'https://codex.wordpress.org/' ) + ) . '

'; + +wp_die( $die, __( 'WordPress › Error' ) ); \ No newline at end of file diff --git a/src/wp-admin/js/comment.js b/src/js/_enqueues/admin/comment.js similarity index 100% rename from src/wp-admin/js/comment.js rename to src/js/_enqueues/admin/comment.js diff --git a/src/wp-admin/js/common.js b/src/js/_enqueues/admin/common.js similarity index 100% rename from src/wp-admin/js/common.js rename to src/js/_enqueues/admin/common.js diff --git a/src/wp-admin/js/custom-background.js b/src/js/_enqueues/admin/custom-background.js similarity index 100% rename from src/wp-admin/js/custom-background.js rename to src/js/_enqueues/admin/custom-background.js diff --git a/src/wp-admin/js/custom-header.js b/src/js/_enqueues/admin/custom-header.js similarity index 100% rename from src/wp-admin/js/custom-header.js rename to src/js/_enqueues/admin/custom-header.js diff --git a/src/wp-admin/js/edit-comments.js b/src/js/_enqueues/admin/edit-comments.js similarity index 100% rename from src/wp-admin/js/edit-comments.js rename to src/js/_enqueues/admin/edit-comments.js diff --git a/src/wp-admin/js/inline-edit-post.js b/src/js/_enqueues/admin/inline-edit-post.js similarity index 100% rename from src/wp-admin/js/inline-edit-post.js rename to src/js/_enqueues/admin/inline-edit-post.js diff --git a/src/wp-admin/js/inline-edit-tax.js b/src/js/_enqueues/admin/inline-edit-tax.js similarity index 100% rename from src/wp-admin/js/inline-edit-tax.js rename to src/js/_enqueues/admin/inline-edit-tax.js diff --git a/src/wp-admin/js/link.js b/src/js/_enqueues/admin/link.js similarity index 100% rename from src/wp-admin/js/link.js rename to src/js/_enqueues/admin/link.js diff --git a/src/wp-admin/js/media-upload.js b/src/js/_enqueues/admin/media-upload.js similarity index 100% rename from src/wp-admin/js/media-upload.js rename to src/js/_enqueues/admin/media-upload.js diff --git a/src/wp-admin/js/media.js b/src/js/_enqueues/admin/media.js similarity index 100% rename from src/wp-admin/js/media.js rename to src/js/_enqueues/admin/media.js diff --git a/src/wp-admin/js/plugin-install.js b/src/js/_enqueues/admin/plugin-install.js similarity index 100% rename from src/wp-admin/js/plugin-install.js rename to src/js/_enqueues/admin/plugin-install.js diff --git a/src/wp-admin/js/post.js b/src/js/_enqueues/admin/post.js similarity index 100% rename from src/wp-admin/js/post.js rename to src/js/_enqueues/admin/post.js diff --git a/src/wp-admin/js/postbox.js b/src/js/_enqueues/admin/postbox.js similarity index 100% rename from src/wp-admin/js/postbox.js rename to src/js/_enqueues/admin/postbox.js diff --git a/src/wp-admin/js/set-post-thumbnail.js b/src/js/_enqueues/admin/set-post-thumbnail.js similarity index 100% rename from src/wp-admin/js/set-post-thumbnail.js rename to src/js/_enqueues/admin/set-post-thumbnail.js diff --git a/src/wp-admin/js/tags-box.js b/src/js/_enqueues/admin/tags-box.js similarity index 100% rename from src/wp-admin/js/tags-box.js rename to src/js/_enqueues/admin/tags-box.js diff --git a/src/wp-admin/js/tags-suggest.js b/src/js/_enqueues/admin/tags-suggest.js similarity index 100% rename from src/wp-admin/js/tags-suggest.js rename to src/js/_enqueues/admin/tags-suggest.js diff --git a/src/wp-admin/js/tags.js b/src/js/_enqueues/admin/tags.js similarity index 100% rename from src/wp-admin/js/tags.js rename to src/js/_enqueues/admin/tags.js diff --git a/src/wp-admin/js/user-profile.js b/src/js/_enqueues/admin/user-profile.js similarity index 100% rename from src/wp-admin/js/user-profile.js rename to src/js/_enqueues/admin/user-profile.js diff --git a/src/wp-admin/js/widgets.js b/src/js/_enqueues/admin/widgets.js similarity index 100% rename from src/wp-admin/js/widgets.js rename to src/js/_enqueues/admin/widgets.js diff --git a/src/wp-admin/js/xfn.js b/src/js/_enqueues/admin/xfn.js similarity index 100% rename from src/wp-admin/js/xfn.js rename to src/js/_enqueues/admin/xfn.js diff --git a/src/wp-admin/js/wp-fullscreen-stub.js b/src/js/_enqueues/deprecated/fullscreen-stub.js similarity index 100% rename from src/wp-admin/js/wp-fullscreen-stub.js rename to src/js/_enqueues/deprecated/fullscreen-stub.js diff --git a/src/wp-admin/js/media-gallery.js b/src/js/_enqueues/deprecated/media-gallery.js similarity index 100% rename from src/wp-admin/js/media-gallery.js rename to src/js/_enqueues/deprecated/media-gallery.js diff --git a/src/wp-admin/js/accordion.js b/src/js/_enqueues/lib/accordion.js similarity index 100% rename from src/wp-admin/js/accordion.js rename to src/js/_enqueues/lib/accordion.js diff --git a/src/wp-includes/js/admin-bar.js b/src/js/_enqueues/lib/admin-bar.js similarity index 100% rename from src/wp-includes/js/admin-bar.js rename to src/js/_enqueues/lib/admin-bar.js diff --git a/src/wp-includes/js/wp-ajax-response.js b/src/js/_enqueues/lib/ajax-response.js similarity index 100% rename from src/wp-includes/js/wp-ajax-response.js rename to src/js/_enqueues/lib/ajax-response.js diff --git a/src/wp-includes/js/wp-auth-check.js b/src/js/_enqueues/lib/auth-check.js similarity index 100% rename from src/wp-includes/js/wp-auth-check.js rename to src/js/_enqueues/lib/auth-check.js diff --git a/src/wp-admin/js/color-picker.js b/src/js/_enqueues/lib/color-picker.js similarity index 100% rename from src/wp-admin/js/color-picker.js rename to src/js/_enqueues/lib/color-picker.js diff --git a/src/wp-includes/js/comment-reply.js b/src/js/_enqueues/lib/comment-reply.js similarity index 100% rename from src/wp-includes/js/comment-reply.js rename to src/js/_enqueues/lib/comment-reply.js diff --git a/src/wp-includes/js/utils.js b/src/js/_enqueues/lib/cookies.js similarity index 100% rename from src/wp-includes/js/utils.js rename to src/js/_enqueues/lib/cookies.js diff --git a/src/wp-includes/js/wpdialog.js b/src/js/_enqueues/lib/dialog.js similarity index 100% rename from src/wp-includes/js/wpdialog.js rename to src/js/_enqueues/lib/dialog.js diff --git a/src/wp-includes/js/wp-embed-template.js b/src/js/_enqueues/lib/embed-template.js similarity index 100% rename from src/wp-includes/js/wp-embed-template.js rename to src/js/_enqueues/lib/embed-template.js diff --git a/src/wp-includes/js/wp-emoji-loader.js b/src/js/_enqueues/lib/emoji-loader.js similarity index 100% rename from src/wp-includes/js/wp-emoji-loader.js rename to src/js/_enqueues/lib/emoji-loader.js diff --git a/src/wp-admin/js/gallery.js b/src/js/_enqueues/lib/gallery.js similarity index 100% rename from src/wp-admin/js/gallery.js rename to src/js/_enqueues/lib/gallery.js diff --git a/src/wp-admin/js/image-edit.js b/src/js/_enqueues/lib/image-edit.js similarity index 100% rename from src/wp-admin/js/image-edit.js rename to src/js/_enqueues/lib/image-edit.js diff --git a/src/wp-admin/js/language-chooser.js b/src/js/_enqueues/lib/language-chooser.js similarity index 100% rename from src/wp-admin/js/language-chooser.js rename to src/js/_enqueues/lib/language-chooser.js diff --git a/src/wp-includes/js/wplink.js b/src/js/_enqueues/lib/link.js similarity index 100% rename from src/wp-includes/js/wplink.js rename to src/js/_enqueues/lib/link.js diff --git a/src/wp-includes/js/wp-list-revisions.js b/src/js/_enqueues/lib/list-revisions.js similarity index 100% rename from src/wp-includes/js/wp-list-revisions.js rename to src/js/_enqueues/lib/list-revisions.js diff --git a/src/wp-includes/js/wp-lists.js b/src/js/_enqueues/lib/lists.js similarity index 100% rename from src/wp-includes/js/wp-lists.js rename to src/js/_enqueues/lib/lists.js diff --git a/src/wp-admin/js/nav-menu.js b/src/js/_enqueues/lib/nav-menu.js similarity index 100% rename from src/wp-admin/js/nav-menu.js rename to src/js/_enqueues/lib/nav-menu.js diff --git a/src/wp-includes/js/wp-pointer.js b/src/js/_enqueues/lib/pointer.js similarity index 100% rename from src/wp-includes/js/wp-pointer.js rename to src/js/_enqueues/lib/pointer.js diff --git a/src/wp-includes/js/quicktags.js b/src/js/_enqueues/lib/quicktags.js similarity index 100% rename from src/wp-includes/js/quicktags.js rename to src/js/_enqueues/lib/quicktags.js diff --git a/src/wp-admin/js/user-suggest.js b/src/js/_enqueues/lib/user-suggest.js similarity index 100% rename from src/wp-admin/js/user-suggest.js rename to src/js/_enqueues/lib/user-suggest.js diff --git a/src/wp-includes/js/zxcvbn-async.js b/src/js/_enqueues/lib/zxcvbn-async.js similarity index 100% rename from src/wp-includes/js/zxcvbn-async.js rename to src/js/_enqueues/lib/zxcvbn-async.js diff --git a/src/js/_enqueues/vendor/README.md b/src/js/_enqueues/vendor/README.md new file mode 100644 index 0000000000..e8721a01b5 --- /dev/null +++ b/src/js/_enqueues/vendor/README.md @@ -0,0 +1,34 @@ +# src/js/enqueues/vendor + +In this directory you'll find vendor JavaScript packages that cannot be installed through NPM, but are included in WordPress. Below we've documented the sources for those packages. + +## Folder dependencies + +- codemirror: https://github.com/codemirror/CodeMirror +- crop: http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/download-zip/ +- imgareaselect: https://github.com/odyniec/imgareaselect +- jcrop: https://github.com/tapmodo/Jcrop +- mediaelement: https://github.com/mediaelement/mediaelement +- plupload: https://github.com/moxiecode/plupload +- swfupload: https://github.com/WordPress/secure-swfupload +- thickbox: http://codylindley.com/thickbox/ +- tinymce: https://github.com/tinymce/tinymce + +## Single file dependencies + +- colorpicker: http://www.mattkruse.com/javascript/colorpicker/ +- deprecated/suggest: Patched by Mark Jaquith with Alexander Dick's "multiple items" patch to allow for auto-suggesting of more than one tag before submitting. See documentation in `suggest.js`. +- farbtastic: https://github.com/mattfarina/farbtastic +- iris: https://github.com/Automattic/Iris +- json2: https://github.com/douglascrockford/JSON-js +- jquery/jquery.color: https://github.com/jquery/jquery-color. Package is on NPM but not published by maintainer. +- jquery/jquery.hotkeys: https://github.com/tzuryby/jquery.hotkeys +- jquery/jquery.masonry: Old version for BC purposes, can't include two versions with NPM. The newer version is included through NPM and built to `wp-includes/js/masonry.min.js` +- jquery/jquery.query: https://github.com/blairmitchelmore/jquery.plugins/blob/master/jquery.query.js +- jquery/jquery.schedule: https://github.com/rse/jquery-schedule +- jquery/jquery.serializeobject: https://github.com/cowboy/jquery-misc/blob/master/jquery.ba-serializeobject.js +- jquery/jquery.table-hotkeys: WP version can be downloaded at https://code.google.com/archive/p/js-hotkeys/downloads?page=2. A newer version is available at https://github.com/jeresig/jquery.hotkeys. +- jquery/jquery.ui.touch-punch.js https://github.com/furf/jquery-ui-touch-punch/blob/master/jquery.ui.touch-punch.js +- swfobject: https://github.com/swfobject/swfobject +- tw-sack: https://github.com/abritinthebay/simpleajaxcodekit +- zxcvbn: https://github.com/dropbox/zxcvbn cannot automatically be installed as the frequency lists need to be manually ROT13 transformed. diff --git a/src/wp-includes/js/codemirror/codemirror.min.css b/src/js/_enqueues/vendor/codemirror/codemirror.min.css similarity index 100% rename from src/wp-includes/js/codemirror/codemirror.min.css rename to src/js/_enqueues/vendor/codemirror/codemirror.min.css diff --git a/src/wp-includes/js/codemirror/codemirror.min.js b/src/js/_enqueues/vendor/codemirror/codemirror.min.js similarity index 100% rename from src/wp-includes/js/codemirror/codemirror.min.js rename to src/js/_enqueues/vendor/codemirror/codemirror.min.js diff --git a/src/wp-includes/js/codemirror/csslint.js b/src/js/_enqueues/vendor/codemirror/csslint.js similarity index 100% rename from src/wp-includes/js/codemirror/csslint.js rename to src/js/_enqueues/vendor/codemirror/csslint.js diff --git a/src/wp-includes/js/codemirror/esprima.js b/src/js/_enqueues/vendor/codemirror/esprima.js similarity index 100% rename from src/wp-includes/js/codemirror/esprima.js rename to src/js/_enqueues/vendor/codemirror/esprima.js diff --git a/src/wp-includes/js/codemirror/fakejshint.js b/src/js/_enqueues/vendor/codemirror/fakejshint.js similarity index 100% rename from src/wp-includes/js/codemirror/fakejshint.js rename to src/js/_enqueues/vendor/codemirror/fakejshint.js diff --git a/src/wp-includes/js/codemirror/htmlhint-kses.js b/src/js/_enqueues/vendor/codemirror/htmlhint-kses.js similarity index 100% rename from src/wp-includes/js/codemirror/htmlhint-kses.js rename to src/js/_enqueues/vendor/codemirror/htmlhint-kses.js diff --git a/src/wp-includes/js/codemirror/htmlhint.js b/src/js/_enqueues/vendor/codemirror/htmlhint.js similarity index 100% rename from src/wp-includes/js/codemirror/htmlhint.js rename to src/js/_enqueues/vendor/codemirror/htmlhint.js diff --git a/src/wp-includes/js/codemirror/jsonlint.js b/src/js/_enqueues/vendor/codemirror/jsonlint.js similarity index 100% rename from src/wp-includes/js/codemirror/jsonlint.js rename to src/js/_enqueues/vendor/codemirror/jsonlint.js diff --git a/src/wp-includes/js/colorpicker.js b/src/js/_enqueues/vendor/colorpicker.js similarity index 100% rename from src/wp-includes/js/colorpicker.js rename to src/js/_enqueues/vendor/colorpicker.js diff --git a/src/wp-includes/js/crop/cropper.css b/src/js/_enqueues/vendor/crop/cropper.css similarity index 100% rename from src/wp-includes/js/crop/cropper.css rename to src/js/_enqueues/vendor/crop/cropper.css diff --git a/src/wp-includes/js/crop/cropper.js b/src/js/_enqueues/vendor/crop/cropper.js similarity index 100% rename from src/wp-includes/js/crop/cropper.js rename to src/js/_enqueues/vendor/crop/cropper.js diff --git a/src/wp-includes/js/crop/marqueeHoriz.gif b/src/js/_enqueues/vendor/crop/marqueeHoriz.gif similarity index 100% rename from src/wp-includes/js/crop/marqueeHoriz.gif rename to src/js/_enqueues/vendor/crop/marqueeHoriz.gif diff --git a/src/wp-includes/js/crop/marqueeVert.gif b/src/js/_enqueues/vendor/crop/marqueeVert.gif similarity index 100% rename from src/wp-includes/js/crop/marqueeVert.gif rename to src/js/_enqueues/vendor/crop/marqueeVert.gif diff --git a/src/wp-includes/js/jquery/suggest.js b/src/js/_enqueues/vendor/deprecated/suggest.js similarity index 100% rename from src/wp-includes/js/jquery/suggest.js rename to src/js/_enqueues/vendor/deprecated/suggest.js diff --git a/src/wp-includes/js/jquery/suggest.min.js b/src/js/_enqueues/vendor/deprecated/suggest.min.js similarity index 100% rename from src/wp-includes/js/jquery/suggest.min.js rename to src/js/_enqueues/vendor/deprecated/suggest.min.js diff --git a/src/wp-admin/js/farbtastic.js b/src/js/_enqueues/vendor/farbtastic.js similarity index 100% rename from src/wp-admin/js/farbtastic.js rename to src/js/_enqueues/vendor/farbtastic.js diff --git a/src/wp-includes/js/imgareaselect/border-anim-h.gif b/src/js/_enqueues/vendor/imgareaselect/border-anim-h.gif similarity index 100% rename from src/wp-includes/js/imgareaselect/border-anim-h.gif rename to src/js/_enqueues/vendor/imgareaselect/border-anim-h.gif diff --git a/src/wp-includes/js/imgareaselect/border-anim-v.gif b/src/js/_enqueues/vendor/imgareaselect/border-anim-v.gif similarity index 100% rename from src/wp-includes/js/imgareaselect/border-anim-v.gif rename to src/js/_enqueues/vendor/imgareaselect/border-anim-v.gif diff --git a/src/wp-includes/js/imgareaselect/imgareaselect.css b/src/js/_enqueues/vendor/imgareaselect/imgareaselect.css similarity index 100% rename from src/wp-includes/js/imgareaselect/imgareaselect.css rename to src/js/_enqueues/vendor/imgareaselect/imgareaselect.css diff --git a/src/wp-includes/js/imgareaselect/jquery.imgareaselect.js b/src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js similarity index 100% rename from src/wp-includes/js/imgareaselect/jquery.imgareaselect.js rename to src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.js diff --git a/src/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js b/src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.min.js similarity index 100% rename from src/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js rename to src/js/_enqueues/vendor/imgareaselect/jquery.imgareaselect.min.js diff --git a/src/wp-admin/js/iris.min.js b/src/js/_enqueues/vendor/iris.min.js similarity index 100% rename from src/wp-admin/js/iris.min.js rename to src/js/_enqueues/vendor/iris.min.js diff --git a/src/wp-includes/js/jcrop/Jcrop.gif b/src/js/_enqueues/vendor/jcrop/Jcrop.gif similarity index 100% rename from src/wp-includes/js/jcrop/Jcrop.gif rename to src/js/_enqueues/vendor/jcrop/Jcrop.gif diff --git a/src/wp-includes/js/jcrop/jquery.Jcrop.min.css b/src/js/_enqueues/vendor/jcrop/jquery.Jcrop.min.css similarity index 100% rename from src/wp-includes/js/jcrop/jquery.Jcrop.min.css rename to src/js/_enqueues/vendor/jcrop/jquery.Jcrop.min.css diff --git a/src/wp-includes/js/jcrop/jquery.Jcrop.min.js b/src/js/_enqueues/vendor/jcrop/jquery.Jcrop.min.js similarity index 100% rename from src/wp-includes/js/jcrop/jquery.Jcrop.min.js rename to src/js/_enqueues/vendor/jcrop/jquery.Jcrop.min.js diff --git a/src/wp-includes/js/jquery/jquery.color.min.js b/src/js/_enqueues/vendor/jquery/jquery.color.min.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.color.min.js rename to src/js/_enqueues/vendor/jquery/jquery.color.min.js diff --git a/src/wp-includes/js/jquery/jquery.hotkeys.js b/src/js/_enqueues/vendor/jquery/jquery.hotkeys.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.hotkeys.js rename to src/js/_enqueues/vendor/jquery/jquery.hotkeys.js diff --git a/src/wp-includes/js/jquery/jquery.hotkeys.min.js b/src/js/_enqueues/vendor/jquery/jquery.hotkeys.min.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.hotkeys.min.js rename to src/js/_enqueues/vendor/jquery/jquery.hotkeys.min.js diff --git a/src/wp-includes/js/jquery/jquery.masonry.js b/src/js/_enqueues/vendor/jquery/jquery.masonry.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.masonry.js rename to src/js/_enqueues/vendor/jquery/jquery.masonry.js diff --git a/src/wp-includes/js/jquery/jquery.masonry.min.js b/src/js/_enqueues/vendor/jquery/jquery.masonry.min.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.masonry.min.js rename to src/js/_enqueues/vendor/jquery/jquery.masonry.min.js diff --git a/src/wp-includes/js/jquery/jquery.query.js b/src/js/_enqueues/vendor/jquery/jquery.query.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.query.js rename to src/js/_enqueues/vendor/jquery/jquery.query.js diff --git a/src/wp-includes/js/jquery/jquery.schedule.js b/src/js/_enqueues/vendor/jquery/jquery.schedule.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.schedule.js rename to src/js/_enqueues/vendor/jquery/jquery.schedule.js diff --git a/src/wp-includes/js/jquery/jquery.serialize-object.js b/src/js/_enqueues/vendor/jquery/jquery.serialize-object.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.serialize-object.js rename to src/js/_enqueues/vendor/jquery/jquery.serialize-object.js diff --git a/src/wp-includes/js/jquery/jquery.table-hotkeys.js b/src/js/_enqueues/vendor/jquery/jquery.table-hotkeys.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.table-hotkeys.js rename to src/js/_enqueues/vendor/jquery/jquery.table-hotkeys.js diff --git a/src/wp-includes/js/jquery/jquery.table-hotkeys.min.js b/src/js/_enqueues/vendor/jquery/jquery.table-hotkeys.min.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.table-hotkeys.min.js rename to src/js/_enqueues/vendor/jquery/jquery.table-hotkeys.min.js diff --git a/src/wp-includes/js/jquery/jquery.ui.touch-punch.js b/src/js/_enqueues/vendor/jquery/jquery.ui.touch-punch.js similarity index 100% rename from src/wp-includes/js/jquery/jquery.ui.touch-punch.js rename to src/js/_enqueues/vendor/jquery/jquery.ui.touch-punch.js diff --git a/src/wp-includes/js/json2.js b/src/js/_enqueues/vendor/json2.js similarity index 100% rename from src/wp-includes/js/json2.js rename to src/js/_enqueues/vendor/json2.js diff --git a/src/wp-includes/js/mediaelement/mediaelement-and-player.js b/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.js similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelement-and-player.js rename to src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.js diff --git a/src/wp-includes/js/mediaelement/mediaelement-and-player.min.js b/src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.min.js similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelement-and-player.min.js rename to src/js/_enqueues/vendor/mediaelement/mediaelement-and-player.min.js diff --git a/src/wp-includes/js/mediaelement/mediaelement-migrate.js b/src/js/_enqueues/vendor/mediaelement/mediaelement-migrate.js similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelement-migrate.js rename to src/js/_enqueues/vendor/mediaelement/mediaelement-migrate.js diff --git a/src/wp-includes/js/mediaelement/mediaelement.js b/src/js/_enqueues/vendor/mediaelement/mediaelement.js similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelement.js rename to src/js/_enqueues/vendor/mediaelement/mediaelement.js diff --git a/src/wp-includes/js/mediaelement/mediaelement.min.js b/src/js/_enqueues/vendor/mediaelement/mediaelement.min.js similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelement.min.js rename to src/js/_enqueues/vendor/mediaelement/mediaelement.min.js diff --git a/src/wp-includes/js/mediaelement/mediaelementplayer-legacy.css b/src/js/_enqueues/vendor/mediaelement/mediaelementplayer-legacy.css similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelementplayer-legacy.css rename to src/js/_enqueues/vendor/mediaelement/mediaelementplayer-legacy.css diff --git a/src/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css b/src/js/_enqueues/vendor/mediaelement/mediaelementplayer-legacy.min.css similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css rename to src/js/_enqueues/vendor/mediaelement/mediaelementplayer-legacy.min.css diff --git a/src/wp-includes/js/mediaelement/mediaelementplayer.css b/src/js/_enqueues/vendor/mediaelement/mediaelementplayer.css similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelementplayer.css rename to src/js/_enqueues/vendor/mediaelement/mediaelementplayer.css diff --git a/src/wp-includes/js/mediaelement/mediaelementplayer.min.css b/src/js/_enqueues/vendor/mediaelement/mediaelementplayer.min.css similarity index 100% rename from src/wp-includes/js/mediaelement/mediaelementplayer.min.css rename to src/js/_enqueues/vendor/mediaelement/mediaelementplayer.min.css diff --git a/src/wp-includes/js/mediaelement/mejs-controls.png b/src/js/_enqueues/vendor/mediaelement/mejs-controls.png similarity index 100% rename from src/wp-includes/js/mediaelement/mejs-controls.png rename to src/js/_enqueues/vendor/mediaelement/mejs-controls.png diff --git a/src/wp-includes/js/mediaelement/mejs-controls.svg b/src/js/_enqueues/vendor/mediaelement/mejs-controls.svg similarity index 100% rename from src/wp-includes/js/mediaelement/mejs-controls.svg rename to src/js/_enqueues/vendor/mediaelement/mejs-controls.svg diff --git a/src/wp-includes/js/mediaelement/renderers/vimeo.js b/src/js/_enqueues/vendor/mediaelement/renderers/vimeo.js similarity index 100% rename from src/wp-includes/js/mediaelement/renderers/vimeo.js rename to src/js/_enqueues/vendor/mediaelement/renderers/vimeo.js diff --git a/src/wp-includes/js/mediaelement/renderers/vimeo.min.js b/src/js/_enqueues/vendor/mediaelement/renderers/vimeo.min.js similarity index 100% rename from src/wp-includes/js/mediaelement/renderers/vimeo.min.js rename to src/js/_enqueues/vendor/mediaelement/renderers/vimeo.min.js diff --git a/src/wp-includes/js/mediaelement/wp-mediaelement.css b/src/js/_enqueues/vendor/mediaelement/wp-mediaelement.css similarity index 100% rename from src/wp-includes/js/mediaelement/wp-mediaelement.css rename to src/js/_enqueues/vendor/mediaelement/wp-mediaelement.css diff --git a/src/wp-includes/js/mediaelement/wp-mediaelement.js b/src/js/_enqueues/vendor/mediaelement/wp-mediaelement.js similarity index 100% rename from src/wp-includes/js/mediaelement/wp-mediaelement.js rename to src/js/_enqueues/vendor/mediaelement/wp-mediaelement.js diff --git a/src/wp-includes/js/mediaelement/wp-playlist.js b/src/js/_enqueues/vendor/mediaelement/wp-playlist.js similarity index 100% rename from src/wp-includes/js/mediaelement/wp-playlist.js rename to src/js/_enqueues/vendor/mediaelement/wp-playlist.js diff --git a/src/wp-includes/js/plupload/handlers.js b/src/js/_enqueues/vendor/plupload/handlers.js similarity index 100% rename from src/wp-includes/js/plupload/handlers.js rename to src/js/_enqueues/vendor/plupload/handlers.js diff --git a/src/wp-includes/js/plupload/license.txt b/src/js/_enqueues/vendor/plupload/license.txt similarity index 100% rename from src/wp-includes/js/plupload/license.txt rename to src/js/_enqueues/vendor/plupload/license.txt diff --git a/src/wp-includes/js/plupload/moxie.js b/src/js/_enqueues/vendor/plupload/moxie.js similarity index 100% rename from src/wp-includes/js/plupload/moxie.js rename to src/js/_enqueues/vendor/plupload/moxie.js diff --git a/src/wp-includes/js/plupload/plupload.js b/src/js/_enqueues/vendor/plupload/plupload.js similarity index 100% rename from src/wp-includes/js/plupload/plupload.js rename to src/js/_enqueues/vendor/plupload/plupload.js diff --git a/src/wp-includes/js/plupload/wp-plupload.js b/src/js/_enqueues/vendor/plupload/wp-plupload.js similarity index 100% rename from src/wp-includes/js/plupload/wp-plupload.js rename to src/js/_enqueues/vendor/plupload/wp-plupload.js diff --git a/src/wp-includes/js/swfobject.js b/src/js/_enqueues/vendor/swfobject.js similarity index 100% rename from src/wp-includes/js/swfobject.js rename to src/js/_enqueues/vendor/swfobject.js diff --git a/src/wp-includes/js/swfupload/handlers.js b/src/js/_enqueues/vendor/swfupload/handlers.js similarity index 100% rename from src/wp-includes/js/swfupload/handlers.js rename to src/js/_enqueues/vendor/swfupload/handlers.js diff --git a/src/wp-includes/js/swfupload/handlers.min.js b/src/js/_enqueues/vendor/swfupload/handlers.min.js similarity index 100% rename from src/wp-includes/js/swfupload/handlers.min.js rename to src/js/_enqueues/vendor/swfupload/handlers.min.js diff --git a/src/wp-includes/js/swfupload/license.txt b/src/js/_enqueues/vendor/swfupload/license.txt similarity index 100% rename from src/wp-includes/js/swfupload/license.txt rename to src/js/_enqueues/vendor/swfupload/license.txt diff --git a/src/wp-includes/js/swfupload/swfupload.js b/src/js/_enqueues/vendor/swfupload/swfupload.js similarity index 100% rename from src/wp-includes/js/swfupload/swfupload.js rename to src/js/_enqueues/vendor/swfupload/swfupload.js diff --git a/src/wp-includes/js/thickbox/loadingAnimation.gif b/src/js/_enqueues/vendor/thickbox/loadingAnimation.gif similarity index 100% rename from src/wp-includes/js/thickbox/loadingAnimation.gif rename to src/js/_enqueues/vendor/thickbox/loadingAnimation.gif diff --git a/src/wp-includes/js/thickbox/macFFBgHack.png b/src/js/_enqueues/vendor/thickbox/macFFBgHack.png similarity index 100% rename from src/wp-includes/js/thickbox/macFFBgHack.png rename to src/js/_enqueues/vendor/thickbox/macFFBgHack.png diff --git a/src/wp-includes/js/thickbox/thickbox.css b/src/js/_enqueues/vendor/thickbox/thickbox.css similarity index 100% rename from src/wp-includes/js/thickbox/thickbox.css rename to src/js/_enqueues/vendor/thickbox/thickbox.css diff --git a/src/wp-includes/js/thickbox/thickbox.js b/src/js/_enqueues/vendor/thickbox/thickbox.js similarity index 100% rename from src/wp-includes/js/thickbox/thickbox.js rename to src/js/_enqueues/vendor/thickbox/thickbox.js diff --git a/src/wp-includes/js/tinymce/langs/wp-langs-en.js b/src/js/_enqueues/vendor/tinymce/langs/wp-langs-en.js similarity index 100% rename from src/wp-includes/js/tinymce/langs/wp-langs-en.js rename to src/js/_enqueues/vendor/tinymce/langs/wp-langs-en.js diff --git a/src/wp-includes/js/tinymce/license.txt b/src/js/_enqueues/vendor/tinymce/license.txt similarity index 100% rename from src/wp-includes/js/tinymce/license.txt rename to src/js/_enqueues/vendor/tinymce/license.txt diff --git a/src/wp-includes/js/tinymce/plugins/charmap/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/charmap/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/charmap/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/charmap/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/charmap/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/colorpicker/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/colorpicker/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/colorpicker/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css b/src/js/_enqueues/vendor/tinymce/plugins/compat3x/css/dialog.css similarity index 100% rename from src/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css rename to src/js/_enqueues/vendor/tinymce/plugins/compat3x/css/dialog.css diff --git a/src/wp-includes/js/tinymce/plugins/compat3x/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/compat3x/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/compat3x/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/compat3x/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/compat3x/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/compat3x/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/directionality/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/directionality/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/directionality/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/directionality/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/directionality/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/fullscreen/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/fullscreen/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/fullscreen/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/hr/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/hr/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/hr/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/hr/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/hr/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/image/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/image/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/image/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/image/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/image/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/image/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/link/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/link/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/link/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/link/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/link/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/link/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/link/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/lists/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/lists/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/lists/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/lists/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/lists/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/media/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/media/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/media/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/media/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/media/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/media/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/media/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/media/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/paste/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/paste/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/paste/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/paste/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/paste/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/tabfocus/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/tabfocus/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/tabfocus/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/textcolor/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/textcolor/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js b/src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.min.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js rename to src/js/_enqueues/vendor/tinymce/plugins/textcolor/plugin.min.js diff --git a/src/wp-includes/js/tinymce/plugins/wordpress/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wordpress/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wordpress/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wpautoresize/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wpautoresize/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wpdialogs/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wpdialogs/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wpeditimage/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wpeditimage/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wpemoji/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wpemoji/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wpemoji/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wpemoji/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wpgallery/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wpgallery/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wpgallery/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wpgallery/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wplink/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wplink/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wplink/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wplink/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wptextpattern/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wptextpattern/plugin.js diff --git a/src/wp-includes/js/tinymce/plugins/wpview/plugin.js b/src/js/_enqueues/vendor/tinymce/plugins/wpview/plugin.js similarity index 100% rename from src/wp-includes/js/tinymce/plugins/wpview/plugin.js rename to src/js/_enqueues/vendor/tinymce/plugins/wpview/plugin.js diff --git a/src/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css b/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.inline.min.css similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/content.inline.min.css diff --git a/src/wp-includes/js/tinymce/skins/lightgray/content.min.css b/src/js/_enqueues/vendor/tinymce/skins/lightgray/content.min.css similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/content.min.css rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/content.min.css diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.eot similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.eot diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.svg similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.svg diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.ttf similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.ttf diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.woff similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce-small.woff diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.eot similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.eot diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.svg similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.svg diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.ttf similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.ttf diff --git a/src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff b/src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.woff similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/fonts/tinymce.woff diff --git a/src/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif b/src/js/_enqueues/vendor/tinymce/skins/lightgray/img/anchor.gif similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/img/anchor.gif diff --git a/src/wp-includes/js/tinymce/skins/lightgray/img/loader.gif b/src/js/_enqueues/vendor/tinymce/skins/lightgray/img/loader.gif similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/img/loader.gif rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/img/loader.gif diff --git a/src/wp-includes/js/tinymce/skins/lightgray/img/object.gif b/src/js/_enqueues/vendor/tinymce/skins/lightgray/img/object.gif similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/img/object.gif rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/img/object.gif diff --git a/src/wp-includes/js/tinymce/skins/lightgray/img/trans.gif b/src/js/_enqueues/vendor/tinymce/skins/lightgray/img/trans.gif similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/img/trans.gif rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/img/trans.gif diff --git a/src/wp-includes/js/tinymce/skins/lightgray/skin.min.css b/src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css similarity index 100% rename from src/wp-includes/js/tinymce/skins/lightgray/skin.min.css rename to src/js/_enqueues/vendor/tinymce/skins/lightgray/skin.min.css diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/audio.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/audio.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/audio.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/audio.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/dashicon-edit.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/dashicon-edit.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/dashicon-no.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/dashicon-no.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/embedded.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/embedded.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/embedded.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/embedded.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/gallery-2x.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/gallery-2x.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/gallery.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/gallery.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/gallery.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/gallery.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/more-2x.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/more-2x.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/more.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/more.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/more.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/more.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/pagebreak-2x.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/pagebreak-2x.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/pagebreak.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/pagebreak.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/playlist-audio.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/playlist-audio.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/playlist-video.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/playlist-video.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/images/video.png b/src/js/_enqueues/vendor/tinymce/skins/wordpress/images/video.png similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/images/video.png rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/images/video.png diff --git a/src/wp-includes/js/tinymce/skins/wordpress/wp-content.css b/src/js/_enqueues/vendor/tinymce/skins/wordpress/wp-content.css similarity index 100% rename from src/wp-includes/js/tinymce/skins/wordpress/wp-content.css rename to src/js/_enqueues/vendor/tinymce/skins/wordpress/wp-content.css diff --git a/src/wp-includes/js/tinymce/themes/inlite/theme.js b/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js similarity index 100% rename from src/wp-includes/js/tinymce/themes/inlite/theme.js rename to src/js/_enqueues/vendor/tinymce/themes/inlite/theme.js diff --git a/src/wp-includes/js/tinymce/themes/inlite/theme.min.js b/src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js similarity index 100% rename from src/wp-includes/js/tinymce/themes/inlite/theme.min.js rename to src/js/_enqueues/vendor/tinymce/themes/inlite/theme.min.js diff --git a/src/wp-includes/js/tinymce/themes/modern/theme.js b/src/js/_enqueues/vendor/tinymce/themes/modern/theme.js similarity index 100% rename from src/wp-includes/js/tinymce/themes/modern/theme.js rename to src/js/_enqueues/vendor/tinymce/themes/modern/theme.js diff --git a/src/wp-includes/js/tinymce/themes/modern/theme.min.js b/src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js similarity index 100% rename from src/wp-includes/js/tinymce/themes/modern/theme.min.js rename to src/js/_enqueues/vendor/tinymce/themes/modern/theme.min.js diff --git a/src/wp-includes/js/tinymce/tiny_mce_popup.js b/src/js/_enqueues/vendor/tinymce/tiny_mce_popup.js similarity index 100% rename from src/wp-includes/js/tinymce/tiny_mce_popup.js rename to src/js/_enqueues/vendor/tinymce/tiny_mce_popup.js diff --git a/src/wp-includes/js/tinymce/tinymce.js b/src/js/_enqueues/vendor/tinymce/tinymce.js similarity index 100% rename from src/wp-includes/js/tinymce/tinymce.js rename to src/js/_enqueues/vendor/tinymce/tinymce.js diff --git a/src/wp-includes/js/tinymce/tinymce.min.js b/src/js/_enqueues/vendor/tinymce/tinymce.min.js similarity index 100% rename from src/wp-includes/js/tinymce/tinymce.min.js rename to src/js/_enqueues/vendor/tinymce/tinymce.min.js diff --git a/src/wp-includes/js/tinymce/utils/editable_selects.js b/src/js/_enqueues/vendor/tinymce/utils/editable_selects.js similarity index 100% rename from src/wp-includes/js/tinymce/utils/editable_selects.js rename to src/js/_enqueues/vendor/tinymce/utils/editable_selects.js diff --git a/src/wp-includes/js/tinymce/utils/form_utils.js b/src/js/_enqueues/vendor/tinymce/utils/form_utils.js similarity index 100% rename from src/wp-includes/js/tinymce/utils/form_utils.js rename to src/js/_enqueues/vendor/tinymce/utils/form_utils.js diff --git a/src/wp-includes/js/tinymce/utils/mctabs.js b/src/js/_enqueues/vendor/tinymce/utils/mctabs.js similarity index 100% rename from src/wp-includes/js/tinymce/utils/mctabs.js rename to src/js/_enqueues/vendor/tinymce/utils/mctabs.js diff --git a/src/wp-includes/js/tinymce/utils/validate.js b/src/js/_enqueues/vendor/tinymce/utils/validate.js similarity index 100% rename from src/wp-includes/js/tinymce/utils/validate.js rename to src/js/_enqueues/vendor/tinymce/utils/validate.js diff --git a/src/wp-includes/js/tinymce/wp-tinymce.php b/src/js/_enqueues/vendor/tinymce/wp-tinymce.php similarity index 100% rename from src/wp-includes/js/tinymce/wp-tinymce.php rename to src/js/_enqueues/vendor/tinymce/wp-tinymce.php diff --git a/src/wp-includes/js/tw-sack.js b/src/js/_enqueues/vendor/tw-sack.js similarity index 100% rename from src/wp-includes/js/tw-sack.js rename to src/js/_enqueues/vendor/tw-sack.js diff --git a/src/wp-includes/js/zxcvbn.min.js b/src/js/_enqueues/vendor/zxcvbn.min.js similarity index 100% rename from src/wp-includes/js/zxcvbn.min.js rename to src/js/_enqueues/vendor/zxcvbn.min.js diff --git a/src/wp-includes/js/wp-a11y.js b/src/js/_enqueues/wp/a11y.js similarity index 100% rename from src/wp-includes/js/wp-a11y.js rename to src/js/_enqueues/wp/a11y.js diff --git a/src/wp-includes/js/api-request.js b/src/js/_enqueues/wp/api-request.js similarity index 100% rename from src/wp-includes/js/api-request.js rename to src/js/_enqueues/wp/api-request.js diff --git a/src/wp-includes/js/wp-api.js b/src/js/_enqueues/wp/api.js similarity index 100% rename from src/wp-includes/js/wp-api.js rename to src/js/_enqueues/wp/api.js diff --git a/src/wp-includes/js/autosave.js b/src/js/_enqueues/wp/autosave.js similarity index 100% rename from src/wp-includes/js/autosave.js rename to src/js/_enqueues/wp/autosave.js diff --git a/src/wp-includes/js/wp-backbone.js b/src/js/_enqueues/wp/backbone.js similarity index 100% rename from src/wp-includes/js/wp-backbone.js rename to src/js/_enqueues/wp/backbone.js diff --git a/src/wp-admin/js/code-editor.js b/src/js/_enqueues/wp/code-editor.js similarity index 100% rename from src/wp-admin/js/code-editor.js rename to src/js/_enqueues/wp/code-editor.js diff --git a/src/wp-includes/js/wp-custom-header.js b/src/js/_enqueues/wp/custom-header.js similarity index 100% rename from src/wp-includes/js/wp-custom-header.js rename to src/js/_enqueues/wp/custom-header.js diff --git a/src/wp-includes/js/customize-base.js b/src/js/_enqueues/wp/customize/base.js similarity index 100% rename from src/wp-includes/js/customize-base.js rename to src/js/_enqueues/wp/customize/base.js diff --git a/src/wp-admin/js/customize-controls.js b/src/js/_enqueues/wp/customize/controls.js similarity index 100% rename from src/wp-admin/js/customize-controls.js rename to src/js/_enqueues/wp/customize/controls.js diff --git a/src/wp-includes/js/customize-loader.js b/src/js/_enqueues/wp/customize/loader.js similarity index 100% rename from src/wp-includes/js/customize-loader.js rename to src/js/_enqueues/wp/customize/loader.js diff --git a/src/wp-includes/js/customize-models.js b/src/js/_enqueues/wp/customize/models.js similarity index 100% rename from src/wp-includes/js/customize-models.js rename to src/js/_enqueues/wp/customize/models.js diff --git a/src/wp-admin/js/customize-nav-menus.js b/src/js/_enqueues/wp/customize/nav-menus.js similarity index 100% rename from src/wp-admin/js/customize-nav-menus.js rename to src/js/_enqueues/wp/customize/nav-menus.js diff --git a/src/wp-includes/js/customize-preview-nav-menus.js b/src/js/_enqueues/wp/customize/preview-nav-menus.js similarity index 100% rename from src/wp-includes/js/customize-preview-nav-menus.js rename to src/js/_enqueues/wp/customize/preview-nav-menus.js diff --git a/src/wp-includes/js/customize-preview-widgets.js b/src/js/_enqueues/wp/customize/preview-widgets.js similarity index 100% rename from src/wp-includes/js/customize-preview-widgets.js rename to src/js/_enqueues/wp/customize/preview-widgets.js diff --git a/src/wp-includes/js/customize-preview.js b/src/js/_enqueues/wp/customize/preview.js similarity index 100% rename from src/wp-includes/js/customize-preview.js rename to src/js/_enqueues/wp/customize/preview.js diff --git a/src/wp-includes/js/customize-selective-refresh.js b/src/js/_enqueues/wp/customize/selective-refresh.js similarity index 100% rename from src/wp-includes/js/customize-selective-refresh.js rename to src/js/_enqueues/wp/customize/selective-refresh.js diff --git a/src/wp-includes/js/customize-views.js b/src/js/_enqueues/wp/customize/views.js similarity index 100% rename from src/wp-includes/js/customize-views.js rename to src/js/_enqueues/wp/customize/views.js diff --git a/src/wp-admin/js/customize-widgets.js b/src/js/_enqueues/wp/customize/widgets.js similarity index 100% rename from src/wp-admin/js/customize-widgets.js rename to src/js/_enqueues/wp/customize/widgets.js diff --git a/src/wp-admin/js/dashboard.js b/src/js/_enqueues/wp/dashboard.js similarity index 100% rename from src/wp-admin/js/dashboard.js rename to src/js/_enqueues/wp/dashboard.js diff --git a/src/wp-admin/js/editor.js b/src/js/_enqueues/wp/editor/base.js similarity index 100% rename from src/wp-admin/js/editor.js rename to src/js/_enqueues/wp/editor/base.js diff --git a/src/wp-admin/js/editor-expand.js b/src/js/_enqueues/wp/editor/dfw.js similarity index 100% rename from src/wp-admin/js/editor-expand.js rename to src/js/_enqueues/wp/editor/dfw.js diff --git a/src/wp-includes/js/wp-embed.js b/src/js/_enqueues/wp/embed.js similarity index 100% rename from src/wp-includes/js/wp-embed.js rename to src/js/_enqueues/wp/embed.js diff --git a/src/wp-includes/js/wp-emoji.js b/src/js/_enqueues/wp/emoji.js similarity index 100% rename from src/wp-includes/js/wp-emoji.js rename to src/js/_enqueues/wp/emoji.js diff --git a/src/wp-includes/js/heartbeat.js b/src/js/_enqueues/wp/heartbeat.js similarity index 100% rename from src/wp-includes/js/heartbeat.js rename to src/js/_enqueues/wp/heartbeat.js diff --git a/src/wp-includes/js/mce-view.js b/src/js/_enqueues/wp/mce-view.js similarity index 100% rename from src/wp-includes/js/mce-view.js rename to src/js/_enqueues/wp/mce-view.js diff --git a/src/wp-includes/js/media/audiovideo.manifest.js b/src/js/_enqueues/wp/media/audiovideo.js similarity index 87% rename from src/wp-includes/js/media/audiovideo.manifest.js rename to src/js/_enqueues/wp/media/audiovideo.js index c1e4c59f8e..0d677b4b0c 100644 --- a/src/wp-includes/js/media/audiovideo.manifest.js +++ b/src/js/_enqueues/wp/media/audiovideo.js @@ -269,12 +269,12 @@ wp.media.video = { } }; -media.model.PostMedia = require( './models/post-media.js' ); -media.controller.AudioDetails = require( './controllers/audio-details.js' ); -media.controller.VideoDetails = require( './controllers/video-details.js' ); -media.view.MediaFrame.MediaDetails = require( './views/frame/media-details.js' ); -media.view.MediaFrame.AudioDetails = require( './views/frame/audio-details.js' ); -media.view.MediaFrame.VideoDetails = require( './views/frame/video-details.js' ); -media.view.MediaDetails = require( './views/media-details.js' ); -media.view.AudioDetails = require( './views/audio-details.js' ); -media.view.VideoDetails = require( './views/video-details.js' ); +media.model.PostMedia = require( '../../../media/models/post-media.js' ); +media.controller.AudioDetails = require( '../../../media/controllers/audio-details.js' ); +media.controller.VideoDetails = require( '../../../media/controllers/video-details.js' ); +media.view.MediaFrame.MediaDetails = require( '../../../media/views/frame/media-details.js' ); +media.view.MediaFrame.AudioDetails = require( '../../../media/views/frame/audio-details.js' ); +media.view.MediaFrame.VideoDetails = require( '../../../media/views/frame/video-details.js' ); +media.view.MediaDetails = require( '../../../media/views/media-details.js' ); +media.view.AudioDetails = require( '../../../media/views/audio-details.js' ); +media.view.VideoDetails = require( '../../../media/views/video-details.js' ); diff --git a/src/wp-includes/js/media-editor.js b/src/js/_enqueues/wp/media/editor.js similarity index 100% rename from src/wp-includes/js/media-editor.js rename to src/js/_enqueues/wp/media/editor.js diff --git a/src/js/_enqueues/wp/media/grid.js b/src/js/_enqueues/wp/media/grid.js new file mode 100644 index 0000000000..17601b268e --- /dev/null +++ b/src/js/_enqueues/wp/media/grid.js @@ -0,0 +1,11 @@ +var media = wp.media; + +media.controller.EditAttachmentMetadata = require( '../../../media/controllers/edit-attachment-metadata.js' ); +media.view.MediaFrame.Manage = require( '../../../media/views/frame/manage.js' ); +media.view.Attachment.Details.TwoColumn = require( '../../../media/views/attachment/details-two-column.js' ); +media.view.MediaFrame.Manage.Router = require( '../../../media/routers/manage.js' ); +media.view.EditImage.Details = require( '../../../media/views/edit-image-details.js' ); +media.view.MediaFrame.EditAttachments = require( '../../../media/views/frame/edit-attachments.js' ); +media.view.SelectModeToggleButton = require( '../../../media/views/button/select-mode-toggle.js' ); +media.view.DeleteSelectedButton = require( '../../../media/views/button/delete-selected.js' ); +media.view.DeleteSelectedPermanentlyButton = require( '../../../media/views/button/delete-selected-permanently.js' ); diff --git a/src/wp-includes/js/media/models.manifest.js b/src/js/_enqueues/wp/media/models.js similarity index 94% rename from src/wp-includes/js/media/models.manifest.js rename to src/js/_enqueues/wp/media/models.js index 27ce9b4732..166ff9fd4e 100644 --- a/src/wp-includes/js/media/models.manifest.js +++ b/src/js/_enqueues/wp/media/models.js @@ -64,12 +64,12 @@ l10n = media.model.l10n = window._wpMediaModelsL10n || {}; media.model.settings = l10n.settings || {}; delete l10n.settings; -Attachment = media.model.Attachment = require( './models/attachment.js' ); -Attachments = media.model.Attachments = require( './models/attachments.js' ); +Attachment = media.model.Attachment = require( '../../../media/models/attachment.js' ); +Attachments = media.model.Attachments = require( '../../../media/models/attachments.js' ); -media.model.Query = require( './models/query.js' ); -media.model.PostImage = require( './models/post-image.js' ); -media.model.Selection = require( './models/selection.js' ); +media.model.Query = require( '../../../media/models/query.js' ); +media.model.PostImage = require( '../../../media/models/post-image.js' ); +media.model.Selection = require( '../../../media/models/selection.js' ); /** * ======================================================================== diff --git a/src/js/_enqueues/wp/media/views.js b/src/js/_enqueues/wp/media/views.js new file mode 100644 index 0000000000..5549764ec6 --- /dev/null +++ b/src/js/_enqueues/wp/media/views.js @@ -0,0 +1,149 @@ +var media = wp.media, + $ = jQuery, + l10n; + +media.isTouchDevice = ( 'ontouchend' in document ); + +// Link any localized strings. +l10n = media.view.l10n = window._wpMediaViewsL10n || {}; + +// Link any settings. +media.view.settings = l10n.settings || {}; +delete l10n.settings; + +// Copy the `post` setting over to the model settings. +media.model.settings.post = media.view.settings.post; + +// Check if the browser supports CSS 3.0 transitions +$.support.transition = (function(){ + var style = document.documentElement.style, + transitions = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }, transition; + + transition = _.find( _.keys( transitions ), function( transition ) { + return ! _.isUndefined( style[ transition ] ); + }); + + return transition && { + end: transitions[ transition ] + }; +}()); + +/** + * A shared event bus used to provide events into + * the media workflows that 3rd-party devs can use to hook + * in. + */ +media.events = _.extend( {}, Backbone.Events ); + +/** + * Makes it easier to bind events using transitions. + * + * @param {string} selector + * @param {Number} sensitivity + * @returns {Promise} + */ +media.transition = function( selector, sensitivity ) { + var deferred = $.Deferred(); + + sensitivity = sensitivity || 2000; + + if ( $.support.transition ) { + if ( ! (selector instanceof $) ) { + selector = $( selector ); + } + + // Resolve the deferred when the first element finishes animating. + selector.first().one( $.support.transition.end, deferred.resolve ); + + // Just in case the event doesn't trigger, fire a callback. + _.delay( deferred.resolve, sensitivity ); + + // Otherwise, execute on the spot. + } else { + deferred.resolve(); + } + + return deferred.promise(); +}; + +media.controller.Region = require( '../../../media/controllers/region.js' ); +media.controller.StateMachine = require( '../../../media/controllers/state-machine.js' ); +media.controller.State = require( '../../../media/controllers/state.js' ); + +media.selectionSync = require( '../../../media/utils/selection-sync.js' ); +media.controller.Library = require( '../../../media/controllers/library.js' ); +media.controller.ImageDetails = require( '../../../media/controllers/image-details.js' ); +media.controller.GalleryEdit = require( '../../../media/controllers/gallery-edit.js' ); +media.controller.GalleryAdd = require( '../../../media/controllers/gallery-add.js' ); +media.controller.CollectionEdit = require( '../../../media/controllers/collection-edit.js' ); +media.controller.CollectionAdd = require( '../../../media/controllers/collection-add.js' ); +media.controller.FeaturedImage = require( '../../../media/controllers/featured-image.js' ); +media.controller.ReplaceImage = require( '../../../media/controllers/replace-image.js' ); +media.controller.EditImage = require( '../../../media/controllers/edit-image.js' ); +media.controller.MediaLibrary = require( '../../../media/controllers/media-library.js' ); +media.controller.Embed = require( '../../../media/controllers/embed.js' ); +media.controller.Cropper = require( '../../../media/controllers/cropper.js' ); +media.controller.CustomizeImageCropper = require( '../../../media/controllers/customize-image-cropper.js' ); +media.controller.SiteIconCropper = require( '../../../media/controllers/site-icon-cropper.js' ); + +media.View = require( '../../../media/views/view.js' ); +media.view.Frame = require( '../../../media/views/frame.js' ); +media.view.MediaFrame = require( '../../../media/views/media-frame.js' ); +media.view.MediaFrame.Select = require( '../../../media/views/frame/select.js' ); +media.view.MediaFrame.Post = require( '../../../media/views/frame/post.js' ); +media.view.MediaFrame.ImageDetails = require( '../../../media/views/frame/image-details.js' ); +media.view.Modal = require( '../../../media/views/modal.js' ); +media.view.FocusManager = require( '../../../media/views/focus-manager.js' ); +media.view.UploaderWindow = require( '../../../media/views/uploader/window.js' ); +media.view.EditorUploader = require( '../../../media/views/uploader/editor.js' ); +media.view.UploaderInline = require( '../../../media/views/uploader/inline.js' ); +media.view.UploaderStatus = require( '../../../media/views/uploader/status.js' ); +media.view.UploaderStatusError = require( '../../../media/views/uploader/status-error.js' ); +media.view.Toolbar = require( '../../../media/views/toolbar.js' ); +media.view.Toolbar.Select = require( '../../../media/views/toolbar/select.js' ); +media.view.Toolbar.Embed = require( '../../../media/views/toolbar/embed.js' ); +media.view.Button = require( '../../../media/views/button.js' ); +media.view.ButtonGroup = require( '../../../media/views/button-group.js' ); +media.view.PriorityList = require( '../../../media/views/priority-list.js' ); +media.view.MenuItem = require( '../../../media/views/menu-item.js' ); +media.view.Menu = require( '../../../media/views/menu.js' ); +media.view.RouterItem = require( '../../../media/views/router-item.js' ); +media.view.Router = require( '../../../media/views/router.js' ); +media.view.Sidebar = require( '../../../media/views/sidebar.js' ); +media.view.Attachment = require( '../../../media/views/attachment.js' ); +media.view.Attachment.Library = require( '../../../media/views/attachment/library.js' ); +media.view.Attachment.EditLibrary = require( '../../../media/views/attachment/edit-library.js' ); +media.view.Attachments = require( '../../../media/views/attachments.js' ); +media.view.Search = require( '../../../media/views/search.js' ); +media.view.AttachmentFilters = require( '../../../media/views/attachment-filters.js' ); +media.view.DateFilter = require( '../../../media/views/attachment-filters/date.js' ); +media.view.AttachmentFilters.Uploaded = require( '../../../media/views/attachment-filters/uploaded.js' ); +media.view.AttachmentFilters.All = require( '../../../media/views/attachment-filters/all.js' ); +media.view.AttachmentsBrowser = require( '../../../media/views/attachments/browser.js' ); +media.view.Selection = require( '../../../media/views/selection.js' ); +media.view.Attachment.Selection = require( '../../../media/views/attachment/selection.js' ); +media.view.Attachments.Selection = require( '../../../media/views/attachments/selection.js' ); +media.view.Attachment.EditSelection = require( '../../../media/views/attachment/edit-selection.js' ); +media.view.Settings = require( '../../../media/views/settings.js' ); +media.view.Settings.AttachmentDisplay = require( '../../../media/views/settings/attachment-display.js' ); +media.view.Settings.Gallery = require( '../../../media/views/settings/gallery.js' ); +media.view.Settings.Playlist = require( '../../../media/views/settings/playlist.js' ); +media.view.Attachment.Details = require( '../../../media/views/attachment/details.js' ); +media.view.AttachmentCompat = require( '../../../media/views/attachment-compat.js' ); +media.view.Iframe = require( '../../../media/views/iframe.js' ); +media.view.Embed = require( '../../../media/views/embed.js' ); +media.view.Label = require( '../../../media/views/label.js' ); +media.view.EmbedUrl = require( '../../../media/views/embed/url.js' ); +media.view.EmbedLink = require( '../../../media/views/embed/link.js' ); +media.view.EmbedImage = require( '../../../media/views/embed/image.js' ); +media.view.ImageDetails = require( '../../../media/views/image-details.js' ); +media.view.Cropper = require( '../../../media/views/cropper.js' ); +media.view.SiteIconCropper = require( '../../../media/views/site-icon-cropper.js' ); +media.view.SiteIconPreview = require( '../../../media/views/site-icon-preview.js' ); +media.view.EditImage = require( '../../../media/views/edit-image.js' ); +media.view.Spinner = require( '../../../media/views/spinner.js' ); diff --git a/src/wp-admin/js/password-strength-meter.js b/src/js/_enqueues/wp/password-strength-meter.js similarity index 100% rename from src/wp-admin/js/password-strength-meter.js rename to src/js/_enqueues/wp/password-strength-meter.js diff --git a/src/wp-admin/js/revisions.js b/src/js/_enqueues/wp/revisions.js similarity index 100% rename from src/wp-admin/js/revisions.js rename to src/js/_enqueues/wp/revisions.js diff --git a/src/wp-includes/js/wp-sanitize.js b/src/js/_enqueues/wp/sanitize.js similarity index 100% rename from src/wp-includes/js/wp-sanitize.js rename to src/js/_enqueues/wp/sanitize.js diff --git a/src/wp-includes/js/shortcode.js b/src/js/_enqueues/wp/shortcode.js similarity index 100% rename from src/wp-includes/js/shortcode.js rename to src/js/_enqueues/wp/shortcode.js diff --git a/src/wp-admin/js/svg-painter.js b/src/js/_enqueues/wp/svg-painter.js similarity index 100% rename from src/wp-admin/js/svg-painter.js rename to src/js/_enqueues/wp/svg-painter.js diff --git a/src/wp-admin/js/theme-plugin-editor.js b/src/js/_enqueues/wp/theme-plugin-editor.js similarity index 100% rename from src/wp-admin/js/theme-plugin-editor.js rename to src/js/_enqueues/wp/theme-plugin-editor.js diff --git a/src/wp-admin/js/theme.js b/src/js/_enqueues/wp/theme.js similarity index 100% rename from src/wp-admin/js/theme.js rename to src/js/_enqueues/wp/theme.js diff --git a/src/wp-admin/js/updates.js b/src/js/_enqueues/wp/updates.js similarity index 100% rename from src/wp-admin/js/updates.js rename to src/js/_enqueues/wp/updates.js diff --git a/src/wp-includes/js/wp-util.js b/src/js/_enqueues/wp/util.js similarity index 100% rename from src/wp-includes/js/wp-util.js rename to src/js/_enqueues/wp/util.js diff --git a/src/wp-admin/js/word-count.js b/src/js/_enqueues/wp/utils/word-count.js similarity index 100% rename from src/wp-admin/js/word-count.js rename to src/js/_enqueues/wp/utils/word-count.js diff --git a/src/wp-admin/js/widgets/custom-html-widgets.js b/src/js/_enqueues/wp/widgets/custom-html.js similarity index 100% rename from src/wp-admin/js/widgets/custom-html-widgets.js rename to src/js/_enqueues/wp/widgets/custom-html.js diff --git a/src/wp-admin/js/widgets/media-audio-widget.js b/src/js/_enqueues/wp/widgets/media-audio.js similarity index 100% rename from src/wp-admin/js/widgets/media-audio-widget.js rename to src/js/_enqueues/wp/widgets/media-audio.js diff --git a/src/wp-admin/js/widgets/media-gallery-widget.js b/src/js/_enqueues/wp/widgets/media-gallery.js similarity index 100% rename from src/wp-admin/js/widgets/media-gallery-widget.js rename to src/js/_enqueues/wp/widgets/media-gallery.js diff --git a/src/wp-admin/js/widgets/media-image-widget.js b/src/js/_enqueues/wp/widgets/media-image.js similarity index 100% rename from src/wp-admin/js/widgets/media-image-widget.js rename to src/js/_enqueues/wp/widgets/media-image.js diff --git a/src/wp-admin/js/widgets/media-video-widget.js b/src/js/_enqueues/wp/widgets/media-video.js similarity index 100% rename from src/wp-admin/js/widgets/media-video-widget.js rename to src/js/_enqueues/wp/widgets/media-video.js diff --git a/src/wp-admin/js/widgets/media-widgets.js b/src/js/_enqueues/wp/widgets/media.js similarity index 100% rename from src/wp-admin/js/widgets/media-widgets.js rename to src/js/_enqueues/wp/widgets/media.js diff --git a/src/wp-admin/js/widgets/text-widgets.js b/src/js/_enqueues/wp/widgets/text.js similarity index 100% rename from src/wp-admin/js/widgets/text-widgets.js rename to src/js/_enqueues/wp/widgets/text.js diff --git a/src/wp-includes/js/media/controllers/audio-details.js b/src/js/media/controllers/audio-details.js similarity index 100% rename from src/wp-includes/js/media/controllers/audio-details.js rename to src/js/media/controllers/audio-details.js diff --git a/src/wp-includes/js/media/controllers/collection-add.js b/src/js/media/controllers/collection-add.js similarity index 100% rename from src/wp-includes/js/media/controllers/collection-add.js rename to src/js/media/controllers/collection-add.js diff --git a/src/wp-includes/js/media/controllers/collection-edit.js b/src/js/media/controllers/collection-edit.js similarity index 100% rename from src/wp-includes/js/media/controllers/collection-edit.js rename to src/js/media/controllers/collection-edit.js diff --git a/src/wp-includes/js/media/controllers/cropper.js b/src/js/media/controllers/cropper.js similarity index 100% rename from src/wp-includes/js/media/controllers/cropper.js rename to src/js/media/controllers/cropper.js diff --git a/src/wp-includes/js/media/controllers/customize-image-cropper.js b/src/js/media/controllers/customize-image-cropper.js similarity index 100% rename from src/wp-includes/js/media/controllers/customize-image-cropper.js rename to src/js/media/controllers/customize-image-cropper.js diff --git a/src/wp-includes/js/media/controllers/edit-attachment-metadata.js b/src/js/media/controllers/edit-attachment-metadata.js similarity index 100% rename from src/wp-includes/js/media/controllers/edit-attachment-metadata.js rename to src/js/media/controllers/edit-attachment-metadata.js diff --git a/src/wp-includes/js/media/controllers/edit-image.js b/src/js/media/controllers/edit-image.js similarity index 100% rename from src/wp-includes/js/media/controllers/edit-image.js rename to src/js/media/controllers/edit-image.js diff --git a/src/wp-includes/js/media/controllers/embed.js b/src/js/media/controllers/embed.js similarity index 100% rename from src/wp-includes/js/media/controllers/embed.js rename to src/js/media/controllers/embed.js diff --git a/src/wp-includes/js/media/controllers/featured-image.js b/src/js/media/controllers/featured-image.js similarity index 100% rename from src/wp-includes/js/media/controllers/featured-image.js rename to src/js/media/controllers/featured-image.js diff --git a/src/wp-includes/js/media/controllers/gallery-add.js b/src/js/media/controllers/gallery-add.js similarity index 100% rename from src/wp-includes/js/media/controllers/gallery-add.js rename to src/js/media/controllers/gallery-add.js diff --git a/src/wp-includes/js/media/controllers/gallery-edit.js b/src/js/media/controllers/gallery-edit.js similarity index 100% rename from src/wp-includes/js/media/controllers/gallery-edit.js rename to src/js/media/controllers/gallery-edit.js diff --git a/src/wp-includes/js/media/controllers/image-details.js b/src/js/media/controllers/image-details.js similarity index 100% rename from src/wp-includes/js/media/controllers/image-details.js rename to src/js/media/controllers/image-details.js diff --git a/src/wp-includes/js/media/controllers/library.js b/src/js/media/controllers/library.js similarity index 100% rename from src/wp-includes/js/media/controllers/library.js rename to src/js/media/controllers/library.js diff --git a/src/wp-includes/js/media/controllers/media-library.js b/src/js/media/controllers/media-library.js similarity index 100% rename from src/wp-includes/js/media/controllers/media-library.js rename to src/js/media/controllers/media-library.js diff --git a/src/wp-includes/js/media/controllers/region.js b/src/js/media/controllers/region.js similarity index 100% rename from src/wp-includes/js/media/controllers/region.js rename to src/js/media/controllers/region.js diff --git a/src/wp-includes/js/media/controllers/replace-image.js b/src/js/media/controllers/replace-image.js similarity index 100% rename from src/wp-includes/js/media/controllers/replace-image.js rename to src/js/media/controllers/replace-image.js diff --git a/src/wp-includes/js/media/controllers/site-icon-cropper.js b/src/js/media/controllers/site-icon-cropper.js similarity index 100% rename from src/wp-includes/js/media/controllers/site-icon-cropper.js rename to src/js/media/controllers/site-icon-cropper.js diff --git a/src/wp-includes/js/media/controllers/state-machine.js b/src/js/media/controllers/state-machine.js similarity index 100% rename from src/wp-includes/js/media/controllers/state-machine.js rename to src/js/media/controllers/state-machine.js diff --git a/src/wp-includes/js/media/controllers/state.js b/src/js/media/controllers/state.js similarity index 100% rename from src/wp-includes/js/media/controllers/state.js rename to src/js/media/controllers/state.js diff --git a/src/wp-includes/js/media/controllers/video-details.js b/src/js/media/controllers/video-details.js similarity index 100% rename from src/wp-includes/js/media/controllers/video-details.js rename to src/js/media/controllers/video-details.js diff --git a/src/wp-includes/js/media/models/attachment.js b/src/js/media/models/attachment.js similarity index 100% rename from src/wp-includes/js/media/models/attachment.js rename to src/js/media/models/attachment.js diff --git a/src/wp-includes/js/media/models/attachments.js b/src/js/media/models/attachments.js similarity index 100% rename from src/wp-includes/js/media/models/attachments.js rename to src/js/media/models/attachments.js diff --git a/src/wp-includes/js/media/models/post-image.js b/src/js/media/models/post-image.js similarity index 100% rename from src/wp-includes/js/media/models/post-image.js rename to src/js/media/models/post-image.js diff --git a/src/wp-includes/js/media/models/post-media.js b/src/js/media/models/post-media.js similarity index 100% rename from src/wp-includes/js/media/models/post-media.js rename to src/js/media/models/post-media.js diff --git a/src/wp-includes/js/media/models/query.js b/src/js/media/models/query.js similarity index 100% rename from src/wp-includes/js/media/models/query.js rename to src/js/media/models/query.js diff --git a/src/wp-includes/js/media/models/selection.js b/src/js/media/models/selection.js similarity index 100% rename from src/wp-includes/js/media/models/selection.js rename to src/js/media/models/selection.js diff --git a/src/wp-includes/js/media/routers/manage.js b/src/js/media/routers/manage.js similarity index 100% rename from src/wp-includes/js/media/routers/manage.js rename to src/js/media/routers/manage.js diff --git a/src/wp-includes/js/media/utils/selection-sync.js b/src/js/media/utils/selection-sync.js similarity index 100% rename from src/wp-includes/js/media/utils/selection-sync.js rename to src/js/media/utils/selection-sync.js diff --git a/src/wp-includes/js/media/views/attachment-compat.js b/src/js/media/views/attachment-compat.js similarity index 100% rename from src/wp-includes/js/media/views/attachment-compat.js rename to src/js/media/views/attachment-compat.js diff --git a/src/wp-includes/js/media/views/attachment-filters.js b/src/js/media/views/attachment-filters.js similarity index 100% rename from src/wp-includes/js/media/views/attachment-filters.js rename to src/js/media/views/attachment-filters.js diff --git a/src/wp-includes/js/media/views/attachment-filters/all.js b/src/js/media/views/attachment-filters/all.js similarity index 100% rename from src/wp-includes/js/media/views/attachment-filters/all.js rename to src/js/media/views/attachment-filters/all.js diff --git a/src/wp-includes/js/media/views/attachment-filters/date.js b/src/js/media/views/attachment-filters/date.js similarity index 100% rename from src/wp-includes/js/media/views/attachment-filters/date.js rename to src/js/media/views/attachment-filters/date.js diff --git a/src/wp-includes/js/media/views/attachment-filters/uploaded.js b/src/js/media/views/attachment-filters/uploaded.js similarity index 100% rename from src/wp-includes/js/media/views/attachment-filters/uploaded.js rename to src/js/media/views/attachment-filters/uploaded.js diff --git a/src/wp-includes/js/media/views/attachment.js b/src/js/media/views/attachment.js similarity index 100% rename from src/wp-includes/js/media/views/attachment.js rename to src/js/media/views/attachment.js diff --git a/src/wp-includes/js/media/views/attachment/details-two-column.js b/src/js/media/views/attachment/details-two-column.js similarity index 100% rename from src/wp-includes/js/media/views/attachment/details-two-column.js rename to src/js/media/views/attachment/details-two-column.js diff --git a/src/wp-includes/js/media/views/attachment/details.js b/src/js/media/views/attachment/details.js similarity index 100% rename from src/wp-includes/js/media/views/attachment/details.js rename to src/js/media/views/attachment/details.js diff --git a/src/wp-includes/js/media/views/attachment/edit-library.js b/src/js/media/views/attachment/edit-library.js similarity index 100% rename from src/wp-includes/js/media/views/attachment/edit-library.js rename to src/js/media/views/attachment/edit-library.js diff --git a/src/wp-includes/js/media/views/attachment/edit-selection.js b/src/js/media/views/attachment/edit-selection.js similarity index 100% rename from src/wp-includes/js/media/views/attachment/edit-selection.js rename to src/js/media/views/attachment/edit-selection.js diff --git a/src/wp-includes/js/media/views/attachment/library.js b/src/js/media/views/attachment/library.js similarity index 100% rename from src/wp-includes/js/media/views/attachment/library.js rename to src/js/media/views/attachment/library.js diff --git a/src/wp-includes/js/media/views/attachment/selection.js b/src/js/media/views/attachment/selection.js similarity index 100% rename from src/wp-includes/js/media/views/attachment/selection.js rename to src/js/media/views/attachment/selection.js diff --git a/src/wp-includes/js/media/views/attachments.js b/src/js/media/views/attachments.js similarity index 100% rename from src/wp-includes/js/media/views/attachments.js rename to src/js/media/views/attachments.js diff --git a/src/wp-includes/js/media/views/attachments/browser.js b/src/js/media/views/attachments/browser.js similarity index 100% rename from src/wp-includes/js/media/views/attachments/browser.js rename to src/js/media/views/attachments/browser.js diff --git a/src/wp-includes/js/media/views/attachments/selection.js b/src/js/media/views/attachments/selection.js similarity index 100% rename from src/wp-includes/js/media/views/attachments/selection.js rename to src/js/media/views/attachments/selection.js diff --git a/src/wp-includes/js/media/views/audio-details.js b/src/js/media/views/audio-details.js similarity index 100% rename from src/wp-includes/js/media/views/audio-details.js rename to src/js/media/views/audio-details.js diff --git a/src/wp-includes/js/media/views/button-group.js b/src/js/media/views/button-group.js similarity index 100% rename from src/wp-includes/js/media/views/button-group.js rename to src/js/media/views/button-group.js diff --git a/src/wp-includes/js/media/views/button.js b/src/js/media/views/button.js similarity index 100% rename from src/wp-includes/js/media/views/button.js rename to src/js/media/views/button.js diff --git a/src/wp-includes/js/media/views/button/delete-selected-permanently.js b/src/js/media/views/button/delete-selected-permanently.js similarity index 100% rename from src/wp-includes/js/media/views/button/delete-selected-permanently.js rename to src/js/media/views/button/delete-selected-permanently.js diff --git a/src/wp-includes/js/media/views/button/delete-selected.js b/src/js/media/views/button/delete-selected.js similarity index 100% rename from src/wp-includes/js/media/views/button/delete-selected.js rename to src/js/media/views/button/delete-selected.js diff --git a/src/wp-includes/js/media/views/button/select-mode-toggle.js b/src/js/media/views/button/select-mode-toggle.js similarity index 100% rename from src/wp-includes/js/media/views/button/select-mode-toggle.js rename to src/js/media/views/button/select-mode-toggle.js diff --git a/src/wp-includes/js/media/views/cropper.js b/src/js/media/views/cropper.js similarity index 100% rename from src/wp-includes/js/media/views/cropper.js rename to src/js/media/views/cropper.js diff --git a/src/wp-includes/js/media/views/edit-image-details.js b/src/js/media/views/edit-image-details.js similarity index 100% rename from src/wp-includes/js/media/views/edit-image-details.js rename to src/js/media/views/edit-image-details.js diff --git a/src/wp-includes/js/media/views/edit-image.js b/src/js/media/views/edit-image.js similarity index 100% rename from src/wp-includes/js/media/views/edit-image.js rename to src/js/media/views/edit-image.js diff --git a/src/wp-includes/js/media/views/embed.js b/src/js/media/views/embed.js similarity index 100% rename from src/wp-includes/js/media/views/embed.js rename to src/js/media/views/embed.js diff --git a/src/wp-includes/js/media/views/embed/image.js b/src/js/media/views/embed/image.js similarity index 100% rename from src/wp-includes/js/media/views/embed/image.js rename to src/js/media/views/embed/image.js diff --git a/src/wp-includes/js/media/views/embed/link.js b/src/js/media/views/embed/link.js similarity index 100% rename from src/wp-includes/js/media/views/embed/link.js rename to src/js/media/views/embed/link.js diff --git a/src/wp-includes/js/media/views/embed/url.js b/src/js/media/views/embed/url.js similarity index 100% rename from src/wp-includes/js/media/views/embed/url.js rename to src/js/media/views/embed/url.js diff --git a/src/wp-includes/js/media/views/focus-manager.js b/src/js/media/views/focus-manager.js similarity index 100% rename from src/wp-includes/js/media/views/focus-manager.js rename to src/js/media/views/focus-manager.js diff --git a/src/wp-includes/js/media/views/frame.js b/src/js/media/views/frame.js similarity index 100% rename from src/wp-includes/js/media/views/frame.js rename to src/js/media/views/frame.js diff --git a/src/wp-includes/js/media/views/frame/audio-details.js b/src/js/media/views/frame/audio-details.js similarity index 100% rename from src/wp-includes/js/media/views/frame/audio-details.js rename to src/js/media/views/frame/audio-details.js diff --git a/src/wp-includes/js/media/views/frame/edit-attachments.js b/src/js/media/views/frame/edit-attachments.js similarity index 100% rename from src/wp-includes/js/media/views/frame/edit-attachments.js rename to src/js/media/views/frame/edit-attachments.js diff --git a/src/wp-includes/js/media/views/frame/image-details.js b/src/js/media/views/frame/image-details.js similarity index 100% rename from src/wp-includes/js/media/views/frame/image-details.js rename to src/js/media/views/frame/image-details.js diff --git a/src/wp-includes/js/media/views/frame/manage.js b/src/js/media/views/frame/manage.js similarity index 100% rename from src/wp-includes/js/media/views/frame/manage.js rename to src/js/media/views/frame/manage.js diff --git a/src/wp-includes/js/media/views/frame/media-details.js b/src/js/media/views/frame/media-details.js similarity index 100% rename from src/wp-includes/js/media/views/frame/media-details.js rename to src/js/media/views/frame/media-details.js diff --git a/src/wp-includes/js/media/views/frame/post.js b/src/js/media/views/frame/post.js similarity index 100% rename from src/wp-includes/js/media/views/frame/post.js rename to src/js/media/views/frame/post.js diff --git a/src/wp-includes/js/media/views/frame/select.js b/src/js/media/views/frame/select.js similarity index 100% rename from src/wp-includes/js/media/views/frame/select.js rename to src/js/media/views/frame/select.js diff --git a/src/wp-includes/js/media/views/frame/video-details.js b/src/js/media/views/frame/video-details.js similarity index 100% rename from src/wp-includes/js/media/views/frame/video-details.js rename to src/js/media/views/frame/video-details.js diff --git a/src/wp-includes/js/media/views/iframe.js b/src/js/media/views/iframe.js similarity index 100% rename from src/wp-includes/js/media/views/iframe.js rename to src/js/media/views/iframe.js diff --git a/src/wp-includes/js/media/views/image-details.js b/src/js/media/views/image-details.js similarity index 100% rename from src/wp-includes/js/media/views/image-details.js rename to src/js/media/views/image-details.js diff --git a/src/wp-includes/js/media/views/label.js b/src/js/media/views/label.js similarity index 100% rename from src/wp-includes/js/media/views/label.js rename to src/js/media/views/label.js diff --git a/src/wp-includes/js/media/views/media-details.js b/src/js/media/views/media-details.js similarity index 100% rename from src/wp-includes/js/media/views/media-details.js rename to src/js/media/views/media-details.js diff --git a/src/wp-includes/js/media/views/media-frame.js b/src/js/media/views/media-frame.js similarity index 100% rename from src/wp-includes/js/media/views/media-frame.js rename to src/js/media/views/media-frame.js diff --git a/src/wp-includes/js/media/views/menu-item.js b/src/js/media/views/menu-item.js similarity index 100% rename from src/wp-includes/js/media/views/menu-item.js rename to src/js/media/views/menu-item.js diff --git a/src/wp-includes/js/media/views/menu.js b/src/js/media/views/menu.js similarity index 100% rename from src/wp-includes/js/media/views/menu.js rename to src/js/media/views/menu.js diff --git a/src/wp-includes/js/media/views/modal.js b/src/js/media/views/modal.js similarity index 100% rename from src/wp-includes/js/media/views/modal.js rename to src/js/media/views/modal.js diff --git a/src/wp-includes/js/media/views/priority-list.js b/src/js/media/views/priority-list.js similarity index 100% rename from src/wp-includes/js/media/views/priority-list.js rename to src/js/media/views/priority-list.js diff --git a/src/wp-includes/js/media/views/router-item.js b/src/js/media/views/router-item.js similarity index 100% rename from src/wp-includes/js/media/views/router-item.js rename to src/js/media/views/router-item.js diff --git a/src/wp-includes/js/media/views/router.js b/src/js/media/views/router.js similarity index 100% rename from src/wp-includes/js/media/views/router.js rename to src/js/media/views/router.js diff --git a/src/wp-includes/js/media/views/search.js b/src/js/media/views/search.js similarity index 100% rename from src/wp-includes/js/media/views/search.js rename to src/js/media/views/search.js diff --git a/src/wp-includes/js/media/views/selection.js b/src/js/media/views/selection.js similarity index 100% rename from src/wp-includes/js/media/views/selection.js rename to src/js/media/views/selection.js diff --git a/src/wp-includes/js/media/views/settings.js b/src/js/media/views/settings.js similarity index 100% rename from src/wp-includes/js/media/views/settings.js rename to src/js/media/views/settings.js diff --git a/src/wp-includes/js/media/views/settings/attachment-display.js b/src/js/media/views/settings/attachment-display.js similarity index 100% rename from src/wp-includes/js/media/views/settings/attachment-display.js rename to src/js/media/views/settings/attachment-display.js diff --git a/src/wp-includes/js/media/views/settings/gallery.js b/src/js/media/views/settings/gallery.js similarity index 100% rename from src/wp-includes/js/media/views/settings/gallery.js rename to src/js/media/views/settings/gallery.js diff --git a/src/wp-includes/js/media/views/settings/playlist.js b/src/js/media/views/settings/playlist.js similarity index 100% rename from src/wp-includes/js/media/views/settings/playlist.js rename to src/js/media/views/settings/playlist.js diff --git a/src/wp-includes/js/media/views/sidebar.js b/src/js/media/views/sidebar.js similarity index 100% rename from src/wp-includes/js/media/views/sidebar.js rename to src/js/media/views/sidebar.js diff --git a/src/wp-includes/js/media/views/site-icon-cropper.js b/src/js/media/views/site-icon-cropper.js similarity index 100% rename from src/wp-includes/js/media/views/site-icon-cropper.js rename to src/js/media/views/site-icon-cropper.js diff --git a/src/wp-includes/js/media/views/site-icon-preview.js b/src/js/media/views/site-icon-preview.js similarity index 100% rename from src/wp-includes/js/media/views/site-icon-preview.js rename to src/js/media/views/site-icon-preview.js diff --git a/src/wp-includes/js/media/views/spinner.js b/src/js/media/views/spinner.js similarity index 100% rename from src/wp-includes/js/media/views/spinner.js rename to src/js/media/views/spinner.js diff --git a/src/wp-includes/js/media/views/toolbar.js b/src/js/media/views/toolbar.js similarity index 100% rename from src/wp-includes/js/media/views/toolbar.js rename to src/js/media/views/toolbar.js diff --git a/src/wp-includes/js/media/views/toolbar/embed.js b/src/js/media/views/toolbar/embed.js similarity index 100% rename from src/wp-includes/js/media/views/toolbar/embed.js rename to src/js/media/views/toolbar/embed.js diff --git a/src/wp-includes/js/media/views/toolbar/select.js b/src/js/media/views/toolbar/select.js similarity index 100% rename from src/wp-includes/js/media/views/toolbar/select.js rename to src/js/media/views/toolbar/select.js diff --git a/src/wp-includes/js/media/views/uploader/editor.js b/src/js/media/views/uploader/editor.js similarity index 100% rename from src/wp-includes/js/media/views/uploader/editor.js rename to src/js/media/views/uploader/editor.js diff --git a/src/wp-includes/js/media/views/uploader/inline.js b/src/js/media/views/uploader/inline.js similarity index 100% rename from src/wp-includes/js/media/views/uploader/inline.js rename to src/js/media/views/uploader/inline.js diff --git a/src/wp-includes/js/media/views/uploader/status-error.js b/src/js/media/views/uploader/status-error.js similarity index 100% rename from src/wp-includes/js/media/views/uploader/status-error.js rename to src/js/media/views/uploader/status-error.js diff --git a/src/wp-includes/js/media/views/uploader/status.js b/src/js/media/views/uploader/status.js similarity index 100% rename from src/wp-includes/js/media/views/uploader/status.js rename to src/js/media/views/uploader/status.js diff --git a/src/wp-includes/js/media/views/uploader/window.js b/src/js/media/views/uploader/window.js similarity index 100% rename from src/wp-includes/js/media/views/uploader/window.js rename to src/js/media/views/uploader/window.js diff --git a/src/wp-includes/js/media/views/video-details.js b/src/js/media/views/video-details.js similarity index 100% rename from src/wp-includes/js/media/views/video-details.js rename to src/js/media/views/video-details.js diff --git a/src/wp-includes/js/media/views/view.js b/src/js/media/views/view.js similarity index 100% rename from src/wp-includes/js/media/views/view.js rename to src/js/media/views/view.js diff --git a/src/wp-admin/_index.php b/src/wp-admin/_index.php new file mode 100644 index 0000000000..368dd7dd59 --- /dev/null +++ b/src/wp-admin/_index.php @@ -0,0 +1,156 @@ +' . __( 'Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab above the screen title.' ) . '

'; + +$screen = get_current_screen(); + +$screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' ), + 'content' => $help, + ) +); + +// Help tabs + +$help = '

' . __( 'The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.' ) . '

'; +$help .= '

' . __( 'Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.' ) . '

'; + +$screen->add_help_tab( + array( + 'id' => 'help-navigation', + 'title' => __( 'Navigation' ), + 'content' => $help, + ) +); + +$help = '

' . __( 'You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.' ) . '

'; +$help .= '

' . __( 'Screen Options — Use the Screen Options tab to choose which Dashboard boxes to show.' ) . '

'; +$help .= '

' . __( 'Drag and Drop — To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.' ) . '

'; +$help .= '

' . __( 'Box Controls — Click the title bar of the box to expand or collapse it. Some boxes added by plugins may have configurable content, and will show a “Configure” link in the title bar if you hover over it.' ) . '

'; + +$screen->add_help_tab( + array( + 'id' => 'help-layout', + 'title' => __( 'Layout' ), + 'content' => $help, + ) +); + +$help = '

' . __( 'The boxes on your Dashboard screen are:' ) . '

'; + +if ( current_user_can( 'edit_posts' ) ) { + $help .= '

' . __( 'At A Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.' ) . '

'; +} + +$help .= '

' . __( 'Activity — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them.' ) . '

'; + +if ( is_blog_admin() && current_user_can( 'edit_posts' ) ) { + $help .= '

' . __( "Quick Draft — Allows you to create a new post and save it as a draft. Also displays links to the 3 most recent draft posts you've started." ) . '

'; +} + +$help .= '

' . sprintf( + /* translators: %s: WordPress Planet URL */ + __( 'WordPress Events and News — Upcoming events near you as well as the latest news from the official WordPress project and the WordPress Planet.' ), + __( 'https://planet.wordpress.org/' ) +) . '

'; + +if ( current_user_can( 'edit_theme_options' ) ) { + $help .= '

' . __( 'Welcome — Shows links for some of the most common tasks when setting up a new site.' ) . '

'; +} + +$screen->add_help_tab( + array( + 'id' => 'help-content', + 'title' => __( 'Content' ), + 'content' => $help, + ) +); + +unset( $help ); + +$screen->set_help_sidebar( + '

' . __( 'For more information:' ) . '

' . + '

' . __( 'Documentation on Dashboard' ) . '

' . + '

' . __( 'Support Forums' ) . '

' +); + +include( ABSPATH . 'wp-admin/admin-header.php' ); +?> + +
+

+ +user_email != get_option( 'admin_email' ) ); + if ( $hide ) { + $classes .= ' hidden'; + } + ?> + +
+ + + +
+ + +
+ +
+ +
+ + li.current > a.current:after { /* rtl:ignore */ .folded #collapse-button .collapse-button-icon:after, .rtl #collapse-button .collapse-button-icon:after { - -webkit-transform: rotate(180deg); transform: rotate(180deg); } .rtl.folded #collapse-button .collapse-button-icon:after { - -webkit-transform: none; transform: none; } @@ -728,12 +726,10 @@ li#wp-admin-bar-menu-toggle { /* rtl:ignore */ .auto-fold #collapse-button .collapse-button-icon:after { - -webkit-transform: rotate(180deg); transform: rotate(180deg); } .rtl.auto-fold #collapse-button .collapse-button-icon:after { - -webkit-transform: none; transform: none; } diff --git a/src/wp-admin/css/color-picker.css b/src/wp-admin/css/color-picker.css index 00d7caf85c..477562308f 100644 --- a/src/wp-admin/css/color-picker.css +++ b/src/wp-admin/css/color-picker.css @@ -50,7 +50,6 @@ .wp-color-result:active { /* See Trac ticket #39662 */ - -webkit-transform: none !important; transform: none !important; } diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index 2e07b4e8fc..cf9c7ffe43 100644 --- a/src/wp-admin/css/common.css +++ b/src/wp-admin/css/common.css @@ -1116,7 +1116,6 @@ th.action-links { .wp-filter .button.drawer-toggle:active { background: transparent; box-shadow: none; - -webkit-transform: none; transform: none; } @@ -1507,7 +1506,6 @@ div.error { .import-php .updating-message:before, .button.updating-message:before, .button.installing:before { - -webkit-animation: rotation 2s infinite linear; animation: rotation 2s infinite linear; } @@ -1689,7 +1687,6 @@ form.upgrade .hint { #screen-meta-links .show-settings:active { box-shadow: none; - -webkit-transform: none; transform: none; } @@ -2478,7 +2475,6 @@ div.star-holder .star-rating { } .rtl .star-rating .star-half { - -webkit-transform: rotateY(180deg); transform: rotateY(180deg); } @@ -2927,7 +2923,6 @@ div.action-links { margin: -10px 0 0 -10px; background: #fcfcfc url(../images/spinner.gif) no-repeat center; background-size: 20px 20px; - -webkit-transform: translateZ(0); transform: translateZ(0); } diff --git a/src/wp-admin/css/customize-controls.css b/src/wp-admin/css/customize-controls.css index b20c13760a..7c7c121b67 100644 --- a/src/wp-admin/css/customize-controls.css +++ b/src/wp-admin/css/customize-controls.css @@ -157,7 +157,6 @@ body:not(.ready) #customize-save-button-wrapper .save { font-size: 14px; width: 30px; float: left; - -webkit-transform: none; transform: none; margin-top: 0; } @@ -634,9 +633,7 @@ body.trashing #publish-settings { margin: 0; padding: 0; box-sizing: border-box; - transition: 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1); - transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1); - transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1), 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1); /* easeInOutCubic */ + transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1); /* easeInOutCubic */ } #customize-theme-controls .customize-pane-child.skip-transition { @@ -650,7 +647,6 @@ body.trashing #publish-settings { height: auto; max-height: none; overflow: auto; - -webkit-transform: none; transform: none; } @@ -662,13 +658,11 @@ body.trashing #publish-settings { height: 0; max-height: none; overflow: hidden; - -webkit-transform: translateX(100%); transform: translateX(100%); } #customize-theme-controls .customize-pane-child.open, #customize-theme-controls .customize-pane-child.current-panel { - -webkit-transform: none; transform: none; } @@ -680,7 +674,6 @@ body.trashing #publish-settings { visibility: hidden; height: 0; overflow: hidden; - -webkit-transform: translateX(-100%); transform: translateX(-100%); } @@ -1075,7 +1068,6 @@ p.customize-section-description { bottom: 0; z-index: 10; background: #eee; - display: -webkit-box; display: flex; } @@ -1087,14 +1079,12 @@ p.customize-section-description { #available-menu-items .new-content-item .create-item-input, .customize-control-dropdown-pages .new-content-item .create-item-input { - -webkit-box-flex: 10; flex-grow: 10; } #available-menu-items .new-content-item .add-content, .customize-control-dropdown-pages .new-content-item .add-content { margin: 2px 0 2px 6px; - -webkit-box-flex: 10; flex-grow: 1; } @@ -1215,11 +1205,6 @@ p.customize-section-description { margin-top: 1px; } -@-webkit-keyframes customize-fade-in { - 0% { opacity: 0; } - 100% { opacity: 1; } -} - @keyframes customize-fade-in { 0% { opacity: 0; } 100% { opacity: 1; } @@ -1232,7 +1217,6 @@ p.customize-section-description { } #customize-controls .customize-control-notifications-container.has-overlay-notifications { - -webkit-animation: customize-fade-in 0.5s; animation: customize-fade-in 0.5s; z-index: 30; } @@ -1506,62 +1490,31 @@ p.customize-section-description { .customize-control-header .placeholder:hover .dice, .customize-control-header .header-view:hover > button.random .dice { - -webkit-animation: dice-color-change 3s infinite; animation: dice-color-change 3s infinite; } .button-see-me { - -webkit-animation: bounce .7s 1; animation: bounce .7s 1; - -webkit-transform-origin: center bottom; transform-origin: center bottom; } -@-webkit-keyframes bounce { - from, 20%, 53%, 80%, to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); - -webkit-transform: translate3d(0,0,0); - } - - 40%, 43% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); - -webkit-transform: translate3d(0, -12px, 0); - } - - 70% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); - -webkit-transform: translate3d(0, -6px, 0); - } - - 90% { - -webkit-transform: translate3d(0,-1px,0); - } -} - @keyframes bounce { from, 20%, 53%, 80%, to { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); - -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); - -webkit-transform: translate3d(0, -12px, 0); transform: translate3d(0, -12px, 0); } 70% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); - -webkit-transform: translate3d(0, -6px, 0); transform: translate3d(0, -6px, 0); } 90% { - -webkit-transform: translate3d(0,-1px,0); transform: translate3d(0,-1px,0); } } @@ -1831,7 +1784,6 @@ p.customize-section-description { background: #eee; border-color: #999; box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ); - -webkit-transform: translateY(1px); transform: translateY(1px); } @@ -1860,17 +1812,6 @@ p.customize-section-description { } /* Adds a delay before fading in to avoid it "jumping" */ -@-webkit-keyframes themes-fade-in { - 0% { - opacity: 0; - } - 50% { - opacity: 0; - } - 100% { - opacity: 1; - } -} @keyframes themes-fade-in { 0% { opacity: 0; @@ -1884,12 +1825,10 @@ p.customize-section-description { } .control-panel-themes .customize-themes-full-container.animate { - -webkit-animation: .6s themes-fade-in 1; animation: .6s themes-fade-in 1; } .in-themes-panel:not(.animating) .control-panel-themes .filter-themes-count { - -webkit-animation: .6s themes-fade-in 1; animation: .6s themes-fade-in 1; } @@ -2575,7 +2514,6 @@ body.adding-widget .add-new-widget:hover, body.adding-widget .add-new-widget:before, .adding-menu-items .add-new-menu-item:before, #accordion-section-add_menu .add-new-menu-item.open:before { - -webkit-transform: rotate(45deg); transform: rotate(45deg); } diff --git a/src/wp-admin/css/edit.css b/src/wp-admin/css/edit.css index f51fd4596d..00c68e2bf6 100644 --- a/src/wp-admin/css/edit.css +++ b/src/wp-admin/css/edit.css @@ -1352,26 +1352,20 @@ table.links-table { .focus-on #adminmenuback, .focus-on #adminmenuwrap { transition-duration: 0.6s; - transition-property: -webkit-transform; transition-property: transform; - transition-property: transform, -webkit-transform; transition-timing-function: ease-in-out; } .focus-on #adminmenuback, .focus-on #adminmenuwrap { - -webkit-transform: translateX( -100% ); transform: translateX( -100% ); } .focus-off #adminmenuback, .focus-off #adminmenuwrap { - -webkit-transform: translateX( 0 ); transform: translateX( 0 ); transition-duration: 0.2s; - transition-property: -webkit-transform; transition-property: transform; - transition-property: transform, -webkit-transform; transition-timing-function: ease-in-out; } diff --git a/src/wp-admin/css/forms.css b/src/wp-admin/css/forms.css index ce156de770..31f62c25c8 100644 --- a/src/wp-admin/css/forms.css +++ b/src/wp-admin/css/forms.css @@ -834,13 +834,11 @@ table.form-table td .updated p { right: 10px; bottom: 9px; background: transparent; - -webkit-transform: skew(20deg) rotate(6deg); transform: skew(20deg) rotate(6deg); box-shadow: 0 10px 8px rgba(0, 0, 0, 0.6); } .pressthis-bookmarklet:hover:after { - -webkit-transform: skew(20deg) rotate(9deg); transform: skew(20deg) rotate(9deg); box-shadow: 0 10px 8px rgba(0, 0, 0, 0.7); } @@ -1204,7 +1202,6 @@ table.form-table td .updated p { .email-personal-data--sending::before { color: #f56e28; content: "\f463"; - -webkit-animation: rotation 2s infinite linear; animation: rotation 2s infinite linear; } @@ -1569,24 +1566,11 @@ table.form-table td .updated p { } } -@-webkit-keyframes rotation { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - @keyframes rotation { 0% { - -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { - -webkit-transform: rotate(359deg); transform: rotate(359deg); } } diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 1f463e6e54..8d78983993 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1315,28 +1315,14 @@ ul.cat-checklist { .plugin-card .updating-message:before { content: "\f463"; - -webkit-animation: rotation 2s infinite linear; animation: rotation 2s infinite linear; } -@-webkit-keyframes rotation { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - @keyframes rotation { 0% { - -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { - -webkit-transform: rotate(359deg); transform: rotate(359deg); } } diff --git a/src/wp-admin/css/media.css b/src/wp-admin/css/media.css index 36ddb94afd..bd0c90155d 100644 --- a/src/wp-admin/css/media.css +++ b/src/wp-admin/css/media.css @@ -891,7 +891,6 @@ border color while dragging a file over the uploader drop area */ margin: -10px 0 0 -10px; background: transparent url(../images/spinner.gif) no-repeat center; background-size: 20px 20px; - -webkit-transform: translateZ(0); transform: translateZ(0); } diff --git a/src/wp-admin/css/revisions.css b/src/wp-admin/css/revisions.css index 236d76244a..c900a4998b 100644 --- a/src/wp-admin/css/revisions.css +++ b/src/wp-admin/css/revisions.css @@ -355,7 +355,6 @@ table.diff .diff-addedline ins { top: -20px; width: 25px; height: 25px; - -webkit-transform: rotate(45deg); transform: rotate(45deg); } @@ -417,7 +416,6 @@ table.diff .diff-addedline ins { top: -20px; width: 25px; height: 25px; - -webkit-transform: rotate(45deg); transform: rotate(45deg); } @@ -473,7 +471,6 @@ div.revisions-controls > .wp-slider > .ui-slider-handle { background: #eee; border-color: #999; box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ); - -webkit-transform: translateY(1px); transform: translateY(1px); } diff --git a/src/wp-admin/css/themes.css b/src/wp-admin/css/themes.css index ea58969da1..1d0df145d7 100644 --- a/src/wp-admin/css/themes.css +++ b/src/wp-admin/css/themes.css @@ -230,7 +230,6 @@ body.js .theme-browser.search-loading { .theme-browser .theme .theme-actions { position: absolute; top: 50%; - -webkit-transform: translateY(-50%); transform: translateY(-50%); right: 0; padding: 10px 15px; @@ -1239,7 +1238,6 @@ div#custom-background-image img { } .background-position-control .button-group:first-child > label:first-child .dashicons { - -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); } @@ -1248,7 +1246,6 @@ div#custom-background-image img { } .background-position-control .button-group:first-child > label:last-child .dashicons { - -webkit-transform: rotate( -45deg ); transform: rotate( -45deg ); } @@ -1257,7 +1254,6 @@ div#custom-background-image img { } .background-position-control .button-group:last-child > label:first-child .dashicons { - -webkit-transform: rotate( -45deg ); transform: rotate( -45deg ); } @@ -1266,7 +1262,6 @@ div#custom-background-image img { } .background-position-control .button-group:last-child > label:last-child .dashicons { - -webkit-transform: rotate( 45deg ); transform: rotate( 45deg ); } @@ -1563,12 +1558,10 @@ body.full-overlay-active { /* rtl:ignore */ .wp-full-overlay.collapsed .collapse-sidebar-arrow:before, .rtl .wp-full-overlay .collapse-sidebar-arrow:before { - -webkit-transform: rotate(180.001deg); transform: rotate(180.001deg); /* Firefox: promoting to its own layer to trigger anti-aliasing */ } .rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before { - -webkit-transform: none; transform: none; } @@ -1854,7 +1847,6 @@ body.full-overlay-active { top: 50%; z-index: -1; margin: -10px 0 0 -10px; - -webkit-transform: translateZ(0); transform: translateZ(0); background: transparent url(../images/spinner.gif) no-repeat center center; background-size: 20px 20px; diff --git a/src/wp-admin/css/widgets.css b/src/wp-admin/css/widgets.css index ede470953a..b503a084c5 100644 --- a/src/wp-admin/css/widgets.css +++ b/src/wp-admin/css/widgets.css @@ -164,9 +164,7 @@ } .media-widget-gallery-preview { - display: -webkit-box; display: flex; - -webkit-box-pack: start; justify-content: flex-start; flex-wrap: wrap; margin: -1.79104477%; @@ -221,11 +219,8 @@ bottom: 0; width: 100%; box-sizing: border-box; - display: -webkit-box; display: flex; - -webkit-box-align: center; align-items: center; - -webkit-box-pack: center; justify-content: center; background-color: rgba( 0, 0, 0, .5 ); } diff --git a/src/wp-admin/index.php b/src/wp-admin/index.php index 368dd7dd59..2f5ea078e8 100644 --- a/src/wp-admin/index.php +++ b/src/wp-admin/index.php @@ -1,156 +1,49 @@ ' . __( 'Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab above the screen title.' ) . '

'; +// Standardize $_SERVER variables across setups. +wp_fix_server_vars(); -$screen = get_current_screen(); +require_once( ABSPATH . WPINC . '/functions.php' ); +define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); +require_once( ABSPATH . WPINC . '/version.php' ); -$screen->add_help_tab( - array( - 'id' => 'overview', - 'title' => __( 'Overview' ), - 'content' => $help, - ) -); +wp_check_php_mysql_versions(); +wp_load_translations_early(); -// Help tabs +// Die with an error message +$die = sprintf( + /* translators: %1$s: WordPress, %2$s: src, %3$s: build */ + __( 'You seem to be running %1$s from the %2$s directory. %1$s needs to be built and run from the %3$s directory before we can get started.' ), + 'WordPress', + 'src', + 'build' + ) . '

'; +$die .= '

' . sprintf( + /* translators: %s: WordPress */ + __( 'You can build %s by running:' ), + 'WordPress' + ) . '

'; +$die .= '

npm install && grunt build

'; +$die .= '

' . sprintf( + /* translators: %1$s: NPM URL, %2$s: Grunt URL */ + __( 'This requires NPM and Grunt. Read more about setting up your local development environment.' ), + 'https://www.npmjs.com/', + 'https://gruntjs.com/', + __( 'https://codex.wordpress.org/' ) + ) . '

'; -$help = '

' . __( 'The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.' ) . '

'; -$help .= '

' . __( 'Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.' ) . '

'; - -$screen->add_help_tab( - array( - 'id' => 'help-navigation', - 'title' => __( 'Navigation' ), - 'content' => $help, - ) -); - -$help = '

' . __( 'You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.' ) . '

'; -$help .= '

' . __( 'Screen Options — Use the Screen Options tab to choose which Dashboard boxes to show.' ) . '

'; -$help .= '

' . __( 'Drag and Drop — To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.' ) . '

'; -$help .= '

' . __( 'Box Controls — Click the title bar of the box to expand or collapse it. Some boxes added by plugins may have configurable content, and will show a “Configure” link in the title bar if you hover over it.' ) . '

'; - -$screen->add_help_tab( - array( - 'id' => 'help-layout', - 'title' => __( 'Layout' ), - 'content' => $help, - ) -); - -$help = '

' . __( 'The boxes on your Dashboard screen are:' ) . '

'; - -if ( current_user_can( 'edit_posts' ) ) { - $help .= '

' . __( 'At A Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.' ) . '

'; -} - -$help .= '

' . __( 'Activity — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them.' ) . '

'; - -if ( is_blog_admin() && current_user_can( 'edit_posts' ) ) { - $help .= '

' . __( "Quick Draft — Allows you to create a new post and save it as a draft. Also displays links to the 3 most recent draft posts you've started." ) . '

'; -} - -$help .= '

' . sprintf( - /* translators: %s: WordPress Planet URL */ - __( 'WordPress Events and News — Upcoming events near you as well as the latest news from the official WordPress project and the WordPress Planet.' ), - __( 'https://planet.wordpress.org/' ) -) . '

'; - -if ( current_user_can( 'edit_theme_options' ) ) { - $help .= '

' . __( 'Welcome — Shows links for some of the most common tasks when setting up a new site.' ) . '

'; -} - -$screen->add_help_tab( - array( - 'id' => 'help-content', - 'title' => __( 'Content' ), - 'content' => $help, - ) -); - -unset( $help ); - -$screen->set_help_sidebar( - '

' . __( 'For more information:' ) . '

' . - '

' . __( 'Documentation on Dashboard' ) . '

' . - '

' . __( 'Support Forums' ) . '

' -); - -include( ABSPATH . 'wp-admin/admin-header.php' ); -?> - -
-

- -user_email != get_option( 'admin_email' ) ); - if ( $hide ) { - $classes .= ' hidden'; - } - ?> - -
- - - -
- - -
- -
- -
- - 10 }); - // collection.each(this.addView); - // - // `Function#apply` can be slow so we use the method's arg count, if we know it. - var addMethod = function(length, method, attribute) { - switch (length) { - case 1: return function() { - return _[method](this[attribute]); - }; - case 2: return function(value) { - return _[method](this[attribute], value); - }; - case 3: return function(iteratee, context) { - return _[method](this[attribute], cb(iteratee, this), context); - }; - case 4: return function(iteratee, defaultVal, context) { - return _[method](this[attribute], cb(iteratee, this), defaultVal, context); - }; - default: return function() { - var args = slice.call(arguments); - args.unshift(this[attribute]); - return _[method].apply(_, args); - }; - } - }; - var addUnderscoreMethods = function(Class, methods, attribute) { - _.each(methods, function(length, method) { - if (_[method]) Class.prototype[method] = addMethod(length, method, attribute); - }); - }; - - // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`. - var cb = function(iteratee, instance) { - if (_.isFunction(iteratee)) return iteratee; - if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee); - if (_.isString(iteratee)) return function(model) { return model.get(iteratee); }; - return iteratee; - }; - var modelMatcher = function(attrs) { - var matcher = _.matches(attrs); - return function(model) { - return matcher(model.attributes); - }; - }; - - // Backbone.Events - // --------------- - - // A module that can be mixed in to *any object* in order to provide it with - // a custom event channel. You may bind a callback to an event with `on` or - // remove with `off`; `trigger`-ing an event fires all callbacks in - // succession. - // - // var object = {}; - // _.extend(object, Backbone.Events); - // object.on('expand', function(){ alert('expanded'); }); - // object.trigger('expand'); - // - var Events = Backbone.Events = {}; - - // Regular expression used to split event strings. - var eventSplitter = /\s+/; - - // Iterates over the standard `event, callback` (as well as the fancy multiple - // space-separated events `"change blur", callback` and jQuery-style event - // maps `{event: callback}`). - var eventsApi = function(iteratee, events, name, callback, opts) { - var i = 0, names; - if (name && typeof name === 'object') { - // Handle event maps. - if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback; - for (names = _.keys(name); i < names.length ; i++) { - events = eventsApi(iteratee, events, names[i], name[names[i]], opts); - } - } else if (name && eventSplitter.test(name)) { - // Handle space-separated event names by delegating them individually. - for (names = name.split(eventSplitter); i < names.length; i++) { - events = iteratee(events, names[i], callback, opts); - } - } else { - // Finally, standard events. - events = iteratee(events, name, callback, opts); - } - return events; - }; - - // Bind an event to a `callback` function. Passing `"all"` will bind - // the callback to all events fired. - Events.on = function(name, callback, context) { - return internalOn(this, name, callback, context); - }; - - // Guard the `listening` argument from the public API. - var internalOn = function(obj, name, callback, context, listening) { - obj._events = eventsApi(onApi, obj._events || {}, name, callback, { - context: context, - ctx: obj, - listening: listening - }); - - if (listening) { - var listeners = obj._listeners || (obj._listeners = {}); - listeners[listening.id] = listening; - } - - return obj; - }; - - // Inversion-of-control versions of `on`. Tell *this* object to listen to - // an event in another object... keeping track of what it's listening to - // for easier unbinding later. - Events.listenTo = function(obj, name, callback) { - if (!obj) return this; - var id = obj._listenId || (obj._listenId = _.uniqueId('l')); - var listeningTo = this._listeningTo || (this._listeningTo = {}); - var listening = listeningTo[id]; - - // This object is not listening to any other events on `obj` yet. - // Setup the necessary references to track the listening callbacks. - if (!listening) { - var thisId = this._listenId || (this._listenId = _.uniqueId('l')); - listening = listeningTo[id] = {obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0}; - } - - // Bind callbacks on obj, and keep track of them on listening. - internalOn(obj, name, callback, this, listening); - return this; - }; - - // The reducing API that adds a callback to the `events` object. - var onApi = function(events, name, callback, options) { - if (callback) { - var handlers = events[name] || (events[name] = []); - var context = options.context, ctx = options.ctx, listening = options.listening; - if (listening) listening.count++; - - handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening}); - } - return events; - }; - - // Remove one or many callbacks. If `context` is null, removes all - // callbacks with that function. If `callback` is null, removes all - // callbacks for the event. If `name` is null, removes all bound - // callbacks for all events. - Events.off = function(name, callback, context) { - if (!this._events) return this; - this._events = eventsApi(offApi, this._events, name, callback, { - context: context, - listeners: this._listeners - }); - return this; - }; - - // Tell this object to stop listening to either specific events ... or - // to every object it's currently listening to. - Events.stopListening = function(obj, name, callback) { - var listeningTo = this._listeningTo; - if (!listeningTo) return this; - - var ids = obj ? [obj._listenId] : _.keys(listeningTo); - - for (var i = 0; i < ids.length; i++) { - var listening = listeningTo[ids[i]]; - - // If listening doesn't exist, this object is not currently - // listening to obj. Break out early. - if (!listening) break; - - listening.obj.off(name, callback, this); - } - - return this; - }; - - // The reducing API that removes a callback from the `events` object. - var offApi = function(events, name, callback, options) { - if (!events) return; - - var i = 0, listening; - var context = options.context, listeners = options.listeners; - - // Delete all events listeners and "drop" events. - if (!name && !callback && !context) { - var ids = _.keys(listeners); - for (; i < ids.length; i++) { - listening = listeners[ids[i]]; - delete listeners[listening.id]; - delete listening.listeningTo[listening.objId]; - } - return; - } - - var names = name ? [name] : _.keys(events); - for (; i < names.length; i++) { - name = names[i]; - var handlers = events[name]; - - // Bail out if there are no events stored. - if (!handlers) break; - - // Replace events if there are any remaining. Otherwise, clean up. - var remaining = []; - for (var j = 0; j < handlers.length; j++) { - var handler = handlers[j]; - if ( - callback && callback !== handler.callback && - callback !== handler.callback._callback || - context && context !== handler.context - ) { - remaining.push(handler); - } else { - listening = handler.listening; - if (listening && --listening.count === 0) { - delete listeners[listening.id]; - delete listening.listeningTo[listening.objId]; - } - } - } - - // Update tail event if the list has any events. Otherwise, clean up. - if (remaining.length) { - events[name] = remaining; - } else { - delete events[name]; - } - } - return events; - }; - - // Bind an event to only be triggered a single time. After the first time - // the callback is invoked, its listener will be removed. If multiple events - // are passed in using the space-separated syntax, the handler will fire - // once for each event, not once for a combination of all events. - Events.once = function(name, callback, context) { - // Map the event into a `{event: once}` object. - var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this)); - if (typeof name === 'string' && context == null) callback = void 0; - return this.on(events, callback, context); - }; - - // Inversion-of-control versions of `once`. - Events.listenToOnce = function(obj, name, callback) { - // Map the event into a `{event: once}` object. - var events = eventsApi(onceMap, {}, name, callback, _.bind(this.stopListening, this, obj)); - return this.listenTo(obj, events); - }; - - // Reduces the event callbacks into a map of `{event: onceWrapper}`. - // `offer` unbinds the `onceWrapper` after it has been called. - var onceMap = function(map, name, callback, offer) { - if (callback) { - var once = map[name] = _.once(function() { - offer(name, once); - callback.apply(this, arguments); - }); - once._callback = callback; - } - return map; - }; - - // Trigger one or many events, firing all bound callbacks. Callbacks are - // passed the same arguments as `trigger` is, apart from the event name - // (unless you're listening on `"all"`, which will cause your callback to - // receive the true name of the event as the first argument). - Events.trigger = function(name) { - if (!this._events) return this; - - var length = Math.max(0, arguments.length - 1); - var args = Array(length); - for (var i = 0; i < length; i++) args[i] = arguments[i + 1]; - - eventsApi(triggerApi, this._events, name, void 0, args); - return this; - }; - - // Handles triggering the appropriate event callbacks. - var triggerApi = function(objEvents, name, callback, args) { - if (objEvents) { - var events = objEvents[name]; - var allEvents = objEvents.all; - if (events && allEvents) allEvents = allEvents.slice(); - if (events) triggerEvents(events, args); - if (allEvents) triggerEvents(allEvents, [name].concat(args)); - } - return objEvents; - }; - - // A difficult-to-believe, but optimized internal dispatch function for - // triggering events. Tries to keep the usual cases speedy (most internal - // Backbone events have 3 arguments). - var triggerEvents = function(events, args) { - var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]; - switch (args.length) { - case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return; - case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return; - case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return; - case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return; - default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return; - } - }; - - // Aliases for backwards compatibility. - Events.bind = Events.on; - Events.unbind = Events.off; - - // Allow the `Backbone` object to serve as a global event bus, for folks who - // want global "pubsub" in a convenient place. - _.extend(Backbone, Events); - - // Backbone.Model - // -------------- - - // Backbone **Models** are the basic data object in the framework -- - // frequently representing a row in a table in a database on your server. - // A discrete chunk of data and a bunch of useful, related methods for - // performing computations and transformations on that data. - - // Create a new model with the specified attributes. A client id (`cid`) - // is automatically generated and assigned for you. - var Model = Backbone.Model = function(attributes, options) { - var attrs = attributes || {}; - options || (options = {}); - this.cid = _.uniqueId(this.cidPrefix); - this.attributes = {}; - if (options.collection) this.collection = options.collection; - if (options.parse) attrs = this.parse(attrs, options) || {}; - var defaults = _.result(this, 'defaults'); - attrs = _.defaults(_.extend({}, defaults, attrs), defaults); - this.set(attrs, options); - this.changed = {}; - this.initialize.apply(this, arguments); - }; - - // Attach all inheritable methods to the Model prototype. - _.extend(Model.prototype, Events, { - - // A hash of attributes whose current and previous value differ. - changed: null, - - // The value returned during the last failed validation. - validationError: null, - - // The default name for the JSON `id` attribute is `"id"`. MongoDB and - // CouchDB users may want to set this to `"_id"`. - idAttribute: 'id', - - // The prefix is used to create the client id which is used to identify models locally. - // You may want to override this if you're experiencing name clashes with model ids. - cidPrefix: 'c', - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // Return a copy of the model's `attributes` object. - toJSON: function(options) { - return _.clone(this.attributes); - }, - - // Proxy `Backbone.sync` by default -- but override this if you need - // custom syncing semantics for *this* particular model. - sync: function() { - return Backbone.sync.apply(this, arguments); - }, - - // Get the value of an attribute. - get: function(attr) { - return this.attributes[attr]; - }, - - // Get the HTML-escaped value of an attribute. - escape: function(attr) { - return _.escape(this.get(attr)); - }, - - // Returns `true` if the attribute contains a value that is not null - // or undefined. - has: function(attr) { - return this.get(attr) != null; - }, - - // Special-cased proxy to underscore's `_.matches` method. - matches: function(attrs) { - return !!_.iteratee(attrs, this)(this.attributes); - }, - - // Set a hash of model attributes on the object, firing `"change"`. This is - // the core primitive operation of a model, updating the data and notifying - // anyone who needs to know about the change in state. The heart of the beast. - set: function(key, val, options) { - if (key == null) return this; - - // Handle both `"key", value` and `{key: value}` -style arguments. - var attrs; - if (typeof key === 'object') { - attrs = key; - options = val; - } else { - (attrs = {})[key] = val; - } - - options || (options = {}); - - // Run validation. - if (!this._validate(attrs, options)) return false; - - // Extract attributes and options. - var unset = options.unset; - var silent = options.silent; - var changes = []; - var changing = this._changing; - this._changing = true; - - if (!changing) { - this._previousAttributes = _.clone(this.attributes); - this.changed = {}; - } - - var current = this.attributes; - var changed = this.changed; - var prev = this._previousAttributes; - - // For each `set` attribute, update or delete the current value. - for (var attr in attrs) { - val = attrs[attr]; - if (!_.isEqual(current[attr], val)) changes.push(attr); - if (!_.isEqual(prev[attr], val)) { - changed[attr] = val; - } else { - delete changed[attr]; - } - unset ? delete current[attr] : current[attr] = val; - } - - // Update the `id`. - if (this.idAttribute in attrs) this.id = this.get(this.idAttribute); - - // Trigger all relevant attribute changes. - if (!silent) { - if (changes.length) this._pending = options; - for (var i = 0; i < changes.length; i++) { - this.trigger('change:' + changes[i], this, current[changes[i]], options); - } - } - - // You might be wondering why there's a `while` loop here. Changes can - // be recursively nested within `"change"` events. - if (changing) return this; - if (!silent) { - while (this._pending) { - options = this._pending; - this._pending = false; - this.trigger('change', this, options); - } - } - this._pending = false; - this._changing = false; - return this; - }, - - // Remove an attribute from the model, firing `"change"`. `unset` is a noop - // if the attribute doesn't exist. - unset: function(attr, options) { - return this.set(attr, void 0, _.extend({}, options, {unset: true})); - }, - - // Clear all attributes on the model, firing `"change"`. - clear: function(options) { - var attrs = {}; - for (var key in this.attributes) attrs[key] = void 0; - return this.set(attrs, _.extend({}, options, {unset: true})); - }, - - // Determine if the model has changed since the last `"change"` event. - // If you specify an attribute name, determine if that attribute has changed. - hasChanged: function(attr) { - if (attr == null) return !_.isEmpty(this.changed); - return _.has(this.changed, attr); - }, - - // Return an object containing all the attributes that have changed, or - // false if there are no changed attributes. Useful for determining what - // parts of a view need to be updated and/or what attributes need to be - // persisted to the server. Unset attributes will be set to undefined. - // You can also pass an attributes object to diff against the model, - // determining if there *would be* a change. - changedAttributes: function(diff) { - if (!diff) return this.hasChanged() ? _.clone(this.changed) : false; - var old = this._changing ? this._previousAttributes : this.attributes; - var changed = {}; - for (var attr in diff) { - var val = diff[attr]; - if (_.isEqual(old[attr], val)) continue; - changed[attr] = val; - } - return _.size(changed) ? changed : false; - }, - - // Get the previous value of an attribute, recorded at the time the last - // `"change"` event was fired. - previous: function(attr) { - if (attr == null || !this._previousAttributes) return null; - return this._previousAttributes[attr]; - }, - - // Get all of the attributes of the model at the time of the previous - // `"change"` event. - previousAttributes: function() { - return _.clone(this._previousAttributes); - }, - - // Fetch the model from the server, merging the response with the model's - // local attributes. Any changed attributes will trigger a "change" event. - fetch: function(options) { - options = _.extend({parse: true}, options); - var model = this; - var success = options.success; - options.success = function(resp) { - var serverAttrs = options.parse ? model.parse(resp, options) : resp; - if (!model.set(serverAttrs, options)) return false; - if (success) success.call(options.context, model, resp, options); - model.trigger('sync', model, resp, options); - }; - wrapError(this, options); - return this.sync('read', this, options); - }, - - // Set a hash of model attributes, and sync the model to the server. - // If the server returns an attributes hash that differs, the model's - // state will be `set` again. - save: function(key, val, options) { - // Handle both `"key", value` and `{key: value}` -style arguments. - var attrs; - if (key == null || typeof key === 'object') { - attrs = key; - options = val; - } else { - (attrs = {})[key] = val; - } - - options = _.extend({validate: true, parse: true}, options); - var wait = options.wait; - - // If we're not waiting and attributes exist, save acts as - // `set(attr).save(null, opts)` with validation. Otherwise, check if - // the model will be valid when the attributes, if any, are set. - if (attrs && !wait) { - if (!this.set(attrs, options)) return false; - } else if (!this._validate(attrs, options)) { - return false; - } - - // After a successful server-side save, the client is (optionally) - // updated with the server-side state. - var model = this; - var success = options.success; - var attributes = this.attributes; - options.success = function(resp) { - // Ensure attributes are restored during synchronous saves. - model.attributes = attributes; - var serverAttrs = options.parse ? model.parse(resp, options) : resp; - if (wait) serverAttrs = _.extend({}, attrs, serverAttrs); - if (serverAttrs && !model.set(serverAttrs, options)) return false; - if (success) success.call(options.context, model, resp, options); - model.trigger('sync', model, resp, options); - }; - wrapError(this, options); - - // Set temporary attributes if `{wait: true}` to properly find new ids. - if (attrs && wait) this.attributes = _.extend({}, attributes, attrs); - - var method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update'); - if (method === 'patch' && !options.attrs) options.attrs = attrs; - var xhr = this.sync(method, this, options); - - // Restore attributes. - this.attributes = attributes; - - return xhr; - }, - - // Destroy this model on the server if it was already persisted. - // Optimistically removes the model from its collection, if it has one. - // If `wait: true` is passed, waits for the server to respond before removal. - destroy: function(options) { - options = options ? _.clone(options) : {}; - var model = this; - var success = options.success; - var wait = options.wait; - - var destroy = function() { - model.stopListening(); - model.trigger('destroy', model, model.collection, options); - }; - - options.success = function(resp) { - if (wait) destroy(); - if (success) success.call(options.context, model, resp, options); - if (!model.isNew()) model.trigger('sync', model, resp, options); - }; - - var xhr = false; - if (this.isNew()) { - _.defer(options.success); - } else { - wrapError(this, options); - xhr = this.sync('delete', this, options); - } - if (!wait) destroy(); - return xhr; - }, - - // Default URL for the model's representation on the server -- if you're - // using Backbone's restful methods, override this to change the endpoint - // that will be called. - url: function() { - var base = - _.result(this, 'urlRoot') || - _.result(this.collection, 'url') || - urlError(); - if (this.isNew()) return base; - var id = this.get(this.idAttribute); - return base.replace(/[^\/]$/, '$&/') + encodeURIComponent(id); - }, - - // **parse** converts a response into the hash of attributes to be `set` on - // the model. The default implementation is just to pass the response along. - parse: function(resp, options) { - return resp; - }, - - // Create a new model with identical attributes to this one. - clone: function() { - return new this.constructor(this.attributes); - }, - - // A model is new if it has never been saved to the server, and lacks an id. - isNew: function() { - return !this.has(this.idAttribute); - }, - - // Check if the model is currently in a valid state. - isValid: function(options) { - return this._validate({}, _.extend({}, options, {validate: true})); - }, - - // Run validation against the next complete set of model attributes, - // returning `true` if all is well. Otherwise, fire an `"invalid"` event. - _validate: function(attrs, options) { - if (!options.validate || !this.validate) return true; - attrs = _.extend({}, this.attributes, attrs); - var error = this.validationError = this.validate(attrs, options) || null; - if (!error) return true; - this.trigger('invalid', this, error, _.extend(options, {validationError: error})); - return false; - } - - }); - - // Underscore methods that we want to implement on the Model, mapped to the - // number of arguments they take. - var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0, - omit: 0, chain: 1, isEmpty: 1}; - - // Mix in each Underscore method as a proxy to `Model#attributes`. - addUnderscoreMethods(Model, modelMethods, 'attributes'); - - // Backbone.Collection - // ------------------- - - // If models tend to represent a single row of data, a Backbone Collection is - // more analogous to a table full of data ... or a small slice or page of that - // table, or a collection of rows that belong together for a particular reason - // -- all of the messages in this particular folder, all of the documents - // belonging to this particular author, and so on. Collections maintain - // indexes of their models, both in order, and for lookup by `id`. - - // Create a new **Collection**, perhaps to contain a specific type of `model`. - // If a `comparator` is specified, the Collection will maintain - // its models in sort order, as they're added and removed. - var Collection = Backbone.Collection = function(models, options) { - options || (options = {}); - if (options.model) this.model = options.model; - if (options.comparator !== void 0) this.comparator = options.comparator; - this._reset(); - this.initialize.apply(this, arguments); - if (models) this.reset(models, _.extend({silent: true}, options)); - }; - - // Default options for `Collection#set`. - var setOptions = {add: true, remove: true, merge: true}; - var addOptions = {add: true, remove: false}; - - // Splices `insert` into `array` at index `at`. - var splice = function(array, insert, at) { - at = Math.min(Math.max(at, 0), array.length); - var tail = Array(array.length - at); - var length = insert.length; - var i; - for (i = 0; i < tail.length; i++) tail[i] = array[i + at]; - for (i = 0; i < length; i++) array[i + at] = insert[i]; - for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i]; - }; - - // Define the Collection's inheritable methods. - _.extend(Collection.prototype, Events, { - - // The default model for a collection is just a **Backbone.Model**. - // This should be overridden in most cases. - model: Model, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // The JSON representation of a Collection is an array of the - // models' attributes. - toJSON: function(options) { - return this.map(function(model) { return model.toJSON(options); }); - }, - - // Proxy `Backbone.sync` by default. - sync: function() { - return Backbone.sync.apply(this, arguments); - }, - - // Add a model, or list of models to the set. `models` may be Backbone - // Models or raw JavaScript objects to be converted to Models, or any - // combination of the two. - add: function(models, options) { - return this.set(models, _.extend({merge: false}, options, addOptions)); - }, - - // Remove a model, or a list of models from the set. - remove: function(models, options) { - options = _.extend({}, options); - var singular = !_.isArray(models); - models = singular ? [models] : models.slice(); - var removed = this._removeModels(models, options); - if (!options.silent && removed.length) { - options.changes = {added: [], merged: [], removed: removed}; - this.trigger('update', this, options); - } - return singular ? removed[0] : removed; - }, - - // Update a collection by `set`-ing a new list of models, adding new ones, - // removing models that are no longer present, and merging models that - // already exist in the collection, as necessary. Similar to **Model#set**, - // the core operation for updating the data contained by the collection. - set: function(models, options) { - if (models == null) return; - - options = _.extend({}, setOptions, options); - if (options.parse && !this._isModel(models)) { - models = this.parse(models, options) || []; - } - - var singular = !_.isArray(models); - models = singular ? [models] : models.slice(); - - var at = options.at; - if (at != null) at = +at; - if (at > this.length) at = this.length; - if (at < 0) at += this.length + 1; - - var set = []; - var toAdd = []; - var toMerge = []; - var toRemove = []; - var modelMap = {}; - - var add = options.add; - var merge = options.merge; - var remove = options.remove; - - var sort = false; - var sortable = this.comparator && at == null && options.sort !== false; - var sortAttr = _.isString(this.comparator) ? this.comparator : null; - - // Turn bare objects into model references, and prevent invalid models - // from being added. - var model, i; - for (i = 0; i < models.length; i++) { - model = models[i]; - - // If a duplicate is found, prevent it from being added and - // optionally merge it into the existing model. - var existing = this.get(model); - if (existing) { - if (merge && model !== existing) { - var attrs = this._isModel(model) ? model.attributes : model; - if (options.parse) attrs = existing.parse(attrs, options); - existing.set(attrs, options); - toMerge.push(existing); - if (sortable && !sort) sort = existing.hasChanged(sortAttr); - } - if (!modelMap[existing.cid]) { - modelMap[existing.cid] = true; - set.push(existing); - } - models[i] = existing; - - // If this is a new, valid model, push it to the `toAdd` list. - } else if (add) { - model = models[i] = this._prepareModel(model, options); - if (model) { - toAdd.push(model); - this._addReference(model, options); - modelMap[model.cid] = true; - set.push(model); - } - } - } - - // Remove stale models. - if (remove) { - for (i = 0; i < this.length; i++) { - model = this.models[i]; - if (!modelMap[model.cid]) toRemove.push(model); - } - if (toRemove.length) this._removeModels(toRemove, options); - } - - // See if sorting is needed, update `length` and splice in new models. - var orderChanged = false; - var replace = !sortable && add && remove; - if (set.length && replace) { - orderChanged = this.length !== set.length || _.some(this.models, function(m, index) { - return m !== set[index]; - }); - this.models.length = 0; - splice(this.models, set, 0); - this.length = this.models.length; - } else if (toAdd.length) { - if (sortable) sort = true; - splice(this.models, toAdd, at == null ? this.length : at); - this.length = this.models.length; - } - - // Silently sort the collection if appropriate. - if (sort) this.sort({silent: true}); - - // Unless silenced, it's time to fire all appropriate add/sort/update events. - if (!options.silent) { - for (i = 0; i < toAdd.length; i++) { - if (at != null) options.index = at + i; - model = toAdd[i]; - model.trigger('add', model, this, options); - } - if (sort || orderChanged) this.trigger('sort', this, options); - if (toAdd.length || toRemove.length || toMerge.length) { - options.changes = { - added: toAdd, - removed: toRemove, - merged: toMerge - }; - this.trigger('update', this, options); - } - } - - // Return the added (or merged) model (or models). - return singular ? models[0] : models; - }, - - // When you have more items than you want to add or remove individually, - // you can reset the entire set with a new list of models, without firing - // any granular `add` or `remove` events. Fires `reset` when finished. - // Useful for bulk operations and optimizations. - reset: function(models, options) { - options = options ? _.clone(options) : {}; - for (var i = 0; i < this.models.length; i++) { - this._removeReference(this.models[i], options); - } - options.previousModels = this.models; - this._reset(); - models = this.add(models, _.extend({silent: true}, options)); - if (!options.silent) this.trigger('reset', this, options); - return models; - }, - - // Add a model to the end of the collection. - push: function(model, options) { - return this.add(model, _.extend({at: this.length}, options)); - }, - - // Remove a model from the end of the collection. - pop: function(options) { - var model = this.at(this.length - 1); - return this.remove(model, options); - }, - - // Add a model to the beginning of the collection. - unshift: function(model, options) { - return this.add(model, _.extend({at: 0}, options)); - }, - - // Remove a model from the beginning of the collection. - shift: function(options) { - var model = this.at(0); - return this.remove(model, options); - }, - - // Slice out a sub-array of models from the collection. - slice: function() { - return slice.apply(this.models, arguments); - }, - - // Get a model from the set by id, cid, model object with id or cid - // properties, or an attributes object that is transformed through modelId. - get: function(obj) { - if (obj == null) return void 0; - return this._byId[obj] || - this._byId[this.modelId(obj.attributes || obj)] || - obj.cid && this._byId[obj.cid]; - }, - - // Returns `true` if the model is in the collection. - has: function(obj) { - return this.get(obj) != null; - }, - - // Get the model at the given index. - at: function(index) { - if (index < 0) index += this.length; - return this.models[index]; - }, - - // Return models with matching attributes. Useful for simple cases of - // `filter`. - where: function(attrs, first) { - return this[first ? 'find' : 'filter'](attrs); - }, - - // Return the first model with matching attributes. Useful for simple cases - // of `find`. - findWhere: function(attrs) { - return this.where(attrs, true); - }, - - // Force the collection to re-sort itself. You don't need to call this under - // normal circumstances, as the set will maintain sort order as each item - // is added. - sort: function(options) { - var comparator = this.comparator; - if (!comparator) throw new Error('Cannot sort a set without a comparator'); - options || (options = {}); - - var length = comparator.length; - if (_.isFunction(comparator)) comparator = _.bind(comparator, this); - - // Run sort based on type of `comparator`. - if (length === 1 || _.isString(comparator)) { - this.models = this.sortBy(comparator); - } else { - this.models.sort(comparator); - } - if (!options.silent) this.trigger('sort', this, options); - return this; - }, - - // Pluck an attribute from each model in the collection. - pluck: function(attr) { - return this.map(attr + ''); - }, - - // Fetch the default set of models for this collection, resetting the - // collection when they arrive. If `reset: true` is passed, the response - // data will be passed through the `reset` method instead of `set`. - fetch: function(options) { - options = _.extend({parse: true}, options); - var success = options.success; - var collection = this; - options.success = function(resp) { - var method = options.reset ? 'reset' : 'set'; - collection[method](resp, options); - if (success) success.call(options.context, collection, resp, options); - collection.trigger('sync', collection, resp, options); - }; - wrapError(this, options); - return this.sync('read', this, options); - }, - - // Create a new instance of a model in this collection. Add the model to the - // collection immediately, unless `wait: true` is passed, in which case we - // wait for the server to agree. - create: function(model, options) { - options = options ? _.clone(options) : {}; - var wait = options.wait; - model = this._prepareModel(model, options); - if (!model) return false; - if (!wait) this.add(model, options); - var collection = this; - var success = options.success; - options.success = function(m, resp, callbackOpts) { - if (wait) collection.add(m, callbackOpts); - if (success) success.call(callbackOpts.context, m, resp, callbackOpts); - }; - model.save(null, options); - return model; - }, - - // **parse** converts a response into a list of models to be added to the - // collection. The default implementation is just to pass it through. - parse: function(resp, options) { - return resp; - }, - - // Create a new collection with an identical list of models as this one. - clone: function() { - return new this.constructor(this.models, { - model: this.model, - comparator: this.comparator - }); - }, - - // Define how to uniquely identify models in the collection. - modelId: function(attrs) { - return attrs[this.model.prototype.idAttribute || 'id']; - }, - - // Private method to reset all internal state. Called when the collection - // is first initialized or reset. - _reset: function() { - this.length = 0; - this.models = []; - this._byId = {}; - }, - - // Prepare a hash of attributes (or other model) to be added to this - // collection. - _prepareModel: function(attrs, options) { - if (this._isModel(attrs)) { - if (!attrs.collection) attrs.collection = this; - return attrs; - } - options = options ? _.clone(options) : {}; - options.collection = this; - var model = new this.model(attrs, options); - if (!model.validationError) return model; - this.trigger('invalid', this, model.validationError, options); - return false; - }, - - // Internal method called by both remove and set. - _removeModels: function(models, options) { - var removed = []; - for (var i = 0; i < models.length; i++) { - var model = this.get(models[i]); - if (!model) continue; - - var index = this.indexOf(model); - this.models.splice(index, 1); - this.length--; - - // Remove references before triggering 'remove' event to prevent an - // infinite loop. #3693 - delete this._byId[model.cid]; - var id = this.modelId(model.attributes); - if (id != null) delete this._byId[id]; - - if (!options.silent) { - options.index = index; - model.trigger('remove', model, this, options); - } - - removed.push(model); - this._removeReference(model, options); - } - return removed; - }, - - // Method for checking whether an object should be considered a model for - // the purposes of adding to the collection. - _isModel: function(model) { - return model instanceof Model; - }, - - // Internal method to create a model's ties to a collection. - _addReference: function(model, options) { - this._byId[model.cid] = model; - var id = this.modelId(model.attributes); - if (id != null) this._byId[id] = model; - model.on('all', this._onModelEvent, this); - }, - - // Internal method to sever a model's ties to a collection. - _removeReference: function(model, options) { - delete this._byId[model.cid]; - var id = this.modelId(model.attributes); - if (id != null) delete this._byId[id]; - if (this === model.collection) delete model.collection; - model.off('all', this._onModelEvent, this); - }, - - // Internal method called every time a model in the set fires an event. - // Sets need to update their indexes when models change ids. All other - // events simply proxy through. "add" and "remove" events that originate - // in other collections are ignored. - _onModelEvent: function(event, model, collection, options) { - if (model) { - if ((event === 'add' || event === 'remove') && collection !== this) return; - if (event === 'destroy') this.remove(model, options); - if (event === 'change') { - var prevId = this.modelId(model.previousAttributes()); - var id = this.modelId(model.attributes); - if (prevId !== id) { - if (prevId != null) delete this._byId[prevId]; - if (id != null) this._byId[id] = model; - } - } - } - this.trigger.apply(this, arguments); - } - - }); - - // Underscore methods that we want to implement on the Collection. - // 90% of the core usefulness of Backbone Collections is actually implemented - // right here: - var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0, - foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3, - select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3, - contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3, - head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3, - without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3, - isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3, - sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3}; - - // Mix in each Underscore method as a proxy to `Collection#models`. - addUnderscoreMethods(Collection, collectionMethods, 'models'); - - // Backbone.View - // ------------- - - // Backbone Views are almost more convention than they are actual code. A View - // is simply a JavaScript object that represents a logical chunk of UI in the - // DOM. This might be a single item, an entire list, a sidebar or panel, or - // even the surrounding frame which wraps your whole app. Defining a chunk of - // UI as a **View** allows you to define your DOM events declaratively, without - // having to worry about render order ... and makes it easy for the view to - // react to specific changes in the state of your models. - - // Creating a Backbone.View creates its initial element outside of the DOM, - // if an existing element is not provided... - var View = Backbone.View = function(options) { - this.cid = _.uniqueId('view'); - _.extend(this, _.pick(options, viewOptions)); - this._ensureElement(); - this.initialize.apply(this, arguments); - }; - - // Cached regex to split keys for `delegate`. - var delegateEventSplitter = /^(\S+)\s*(.*)$/; - - // List of view options to be set as properties. - var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']; - - // Set up all inheritable **Backbone.View** properties and methods. - _.extend(View.prototype, Events, { - - // The default `tagName` of a View's element is `"div"`. - tagName: 'div', - - // jQuery delegate for element lookup, scoped to DOM elements within the - // current view. This should be preferred to global lookups where possible. - $: function(selector) { - return this.$el.find(selector); - }, - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // **render** is the core function that your view should override, in order - // to populate its element (`this.el`), with the appropriate HTML. The - // convention is for **render** to always return `this`. - render: function() { - return this; - }, - - // Remove this view by taking the element out of the DOM, and removing any - // applicable Backbone.Events listeners. - remove: function() { - this._removeElement(); - this.stopListening(); - return this; - }, - - // Remove this view's element from the document and all event listeners - // attached to it. Exposed for subclasses using an alternative DOM - // manipulation API. - _removeElement: function() { - this.$el.remove(); - }, - - // Change the view's element (`this.el` property) and re-delegate the - // view's events on the new element. - setElement: function(element) { - this.undelegateEvents(); - this._setElement(element); - this.delegateEvents(); - return this; - }, - - // Creates the `this.el` and `this.$el` references for this view using the - // given `el`. `el` can be a CSS selector or an HTML string, a jQuery - // context or an element. Subclasses can override this to utilize an - // alternative DOM manipulation API and are only required to set the - // `this.el` property. - _setElement: function(el) { - this.$el = el instanceof Backbone.$ ? el : Backbone.$(el); - this.el = this.$el[0]; - }, - - // Set callbacks, where `this.events` is a hash of - // - // *{"event selector": "callback"}* - // - // { - // 'mousedown .title': 'edit', - // 'click .button': 'save', - // 'click .open': function(e) { ... } - // } - // - // pairs. Callbacks will be bound to the view, with `this` set properly. - // Uses event delegation for efficiency. - // Omitting the selector binds the event to `this.el`. - delegateEvents: function(events) { - events || (events = _.result(this, 'events')); - if (!events) return this; - this.undelegateEvents(); - for (var key in events) { - var method = events[key]; - if (!_.isFunction(method)) method = this[method]; - if (!method) continue; - var match = key.match(delegateEventSplitter); - this.delegate(match[1], match[2], _.bind(method, this)); - } - return this; - }, - - // Add a single event listener to the view's element (or a child element - // using `selector`). This only works for delegate-able events: not `focus`, - // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer. - delegate: function(eventName, selector, listener) { - this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener); - return this; - }, - - // Clears all callbacks previously bound to the view by `delegateEvents`. - // You usually don't need to use this, but may wish to if you have multiple - // Backbone views attached to the same DOM element. - undelegateEvents: function() { - if (this.$el) this.$el.off('.delegateEvents' + this.cid); - return this; - }, - - // A finer-grained `undelegateEvents` for removing a single delegated event. - // `selector` and `listener` are both optional. - undelegate: function(eventName, selector, listener) { - this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener); - return this; - }, - - // Produces a DOM element to be assigned to your view. Exposed for - // subclasses using an alternative DOM manipulation API. - _createElement: function(tagName) { - return document.createElement(tagName); - }, - - // Ensure that the View has a DOM element to render into. - // If `this.el` is a string, pass it through `$()`, take the first - // matching element, and re-assign it to `el`. Otherwise, create - // an element from the `id`, `className` and `tagName` properties. - _ensureElement: function() { - if (!this.el) { - var attrs = _.extend({}, _.result(this, 'attributes')); - if (this.id) attrs.id = _.result(this, 'id'); - if (this.className) attrs['class'] = _.result(this, 'className'); - this.setElement(this._createElement(_.result(this, 'tagName'))); - this._setAttributes(attrs); - } else { - this.setElement(_.result(this, 'el')); - } - }, - - // Set attributes from a hash on this view's element. Exposed for - // subclasses using an alternative DOM manipulation API. - _setAttributes: function(attributes) { - this.$el.attr(attributes); - } - - }); - - // Backbone.sync - // ------------- - - // Override this function to change the manner in which Backbone persists - // models to the server. You will be passed the type of request, and the - // model in question. By default, makes a RESTful Ajax request - // to the model's `url()`. Some possible customizations could be: - // - // * Use `setTimeout` to batch rapid-fire updates into a single request. - // * Send up the models as XML instead of JSON. - // * Persist models via WebSockets instead of Ajax. - // - // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests - // as `POST`, with a `_method` parameter containing the true HTTP method, - // as well as all requests with the body as `application/x-www-form-urlencoded` - // instead of `application/json` with the model in a param named `model`. - // Useful when interfacing with server-side languages like **PHP** that make - // it difficult to read the body of `PUT` requests. - Backbone.sync = function(method, model, options) { - var type = methodMap[method]; - - // Default options, unless specified. - _.defaults(options || (options = {}), { - emulateHTTP: Backbone.emulateHTTP, - emulateJSON: Backbone.emulateJSON - }); - - // Default JSON-request options. - var params = {type: type, dataType: 'json'}; - - // Ensure that we have a URL. - if (!options.url) { - params.url = _.result(model, 'url') || urlError(); - } - - // Ensure that we have the appropriate request data. - if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) { - params.contentType = 'application/json'; - params.data = JSON.stringify(options.attrs || model.toJSON(options)); - } - - // For older servers, emulate JSON by encoding the request into an HTML-form. - if (options.emulateJSON) { - params.contentType = 'application/x-www-form-urlencoded'; - params.data = params.data ? {model: params.data} : {}; - } - - // For older servers, emulate HTTP by mimicking the HTTP method with `_method` - // And an `X-HTTP-Method-Override` header. - if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) { - params.type = 'POST'; - if (options.emulateJSON) params.data._method = type; - var beforeSend = options.beforeSend; - options.beforeSend = function(xhr) { - xhr.setRequestHeader('X-HTTP-Method-Override', type); - if (beforeSend) return beforeSend.apply(this, arguments); - }; - } - - // Don't process data on a non-GET request. - if (params.type !== 'GET' && !options.emulateJSON) { - params.processData = false; - } - - // Pass along `textStatus` and `errorThrown` from jQuery. - var error = options.error; - options.error = function(xhr, textStatus, errorThrown) { - options.textStatus = textStatus; - options.errorThrown = errorThrown; - if (error) error.call(options.context, xhr, textStatus, errorThrown); - }; - - // Make the request, allowing the user to override any Ajax options. - var xhr = options.xhr = Backbone.ajax(_.extend(params, options)); - model.trigger('request', model, xhr, options); - return xhr; - }; - - // Map from CRUD to HTTP for our default `Backbone.sync` implementation. - var methodMap = { - 'create': 'POST', - 'update': 'PUT', - 'patch': 'PATCH', - 'delete': 'DELETE', - 'read': 'GET' - }; - - // Set the default implementation of `Backbone.ajax` to proxy through to `$`. - // Override this if you'd like to use a different library. - Backbone.ajax = function() { - return Backbone.$.ajax.apply(Backbone.$, arguments); - }; - - // Backbone.Router - // --------------- - - // Routers map faux-URLs to actions, and fire events when routes are - // matched. Creating a new one sets its `routes` hash, if not set statically. - var Router = Backbone.Router = function(options) { - options || (options = {}); - if (options.routes) this.routes = options.routes; - this._bindRoutes(); - this.initialize.apply(this, arguments); - }; - - // Cached regular expressions for matching named param parts and splatted - // parts of route strings. - var optionalParam = /\((.*?)\)/g; - var namedParam = /(\(\?)?:\w+/g; - var splatParam = /\*\w+/g; - var escapeRegExp = /[\-{}\[\]+?.,\\\^$|#\s]/g; - - // Set up all inheritable **Backbone.Router** properties and methods. - _.extend(Router.prototype, Events, { - - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function(){}, - - // Manually bind a single named route to a callback. For example: - // - // this.route('search/:query/p:num', 'search', function(query, num) { - // ... - // }); - // - route: function(route, name, callback) { - if (!_.isRegExp(route)) route = this._routeToRegExp(route); - if (_.isFunction(name)) { - callback = name; - name = ''; - } - if (!callback) callback = this[name]; - var router = this; - Backbone.history.route(route, function(fragment) { - var args = router._extractParameters(route, fragment); - if (router.execute(callback, args, name) !== false) { - router.trigger.apply(router, ['route:' + name].concat(args)); - router.trigger('route', name, args); - Backbone.history.trigger('route', router, name, args); - } - }); - return this; - }, - - // Execute a route handler with the provided parameters. This is an - // excellent place to do pre-route setup or post-route cleanup. - execute: function(callback, args, name) { - if (callback) callback.apply(this, args); - }, - - // Simple proxy to `Backbone.history` to save a fragment into the history. - navigate: function(fragment, options) { - Backbone.history.navigate(fragment, options); - return this; - }, - - // Bind all defined routes to `Backbone.history`. We have to reverse the - // order of the routes here to support behavior where the most general - // routes can be defined at the bottom of the route map. - _bindRoutes: function() { - if (!this.routes) return; - this.routes = _.result(this, 'routes'); - var route, routes = _.keys(this.routes); - while ((route = routes.pop()) != null) { - this.route(route, this.routes[route]); - } - }, - - // Convert a route string into a regular expression, suitable for matching - // against the current location hash. - _routeToRegExp: function(route) { - route = route.replace(escapeRegExp, '\\$&') - .replace(optionalParam, '(?:$1)?') - .replace(namedParam, function(match, optional) { - return optional ? match : '([^/?]+)'; - }) - .replace(splatParam, '([^?]*?)'); - return new RegExp('^' + route + '(?:\\?([\\s\\S]*))?$'); - }, - - // Given a route, and a URL fragment that it matches, return the array of - // extracted decoded parameters. Empty or unmatched parameters will be - // treated as `null` to normalize cross-browser behavior. - _extractParameters: function(route, fragment) { - var params = route.exec(fragment).slice(1); - return _.map(params, function(param, i) { - // Don't decode the search params. - if (i === params.length - 1) return param || null; - return param ? decodeURIComponent(param) : null; - }); - } - - }); - - // Backbone.History - // ---------------- - - // Handles cross-browser history management, based on either - // [pushState](http://diveintohtml5.info/history.html) and real URLs, or - // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange) - // and URL fragments. If the browser supports neither (old IE, natch), - // falls back to polling. - var History = Backbone.History = function() { - this.handlers = []; - this.checkUrl = _.bind(this.checkUrl, this); - - // Ensure that `History` can be used outside of the browser. - if (typeof window !== 'undefined') { - this.location = window.location; - this.history = window.history; - } - }; - - // Cached regex for stripping a leading hash/slash and trailing space. - var routeStripper = /^[#\/]|\s+$/g; - - // Cached regex for stripping leading and trailing slashes. - var rootStripper = /^\/+|\/+$/g; - - // Cached regex for stripping urls of hash. - var pathStripper = /#.*$/; - - // Has the history handling already been started? - History.started = false; - - // Set up all inheritable **Backbone.History** properties and methods. - _.extend(History.prototype, Events, { - - // The default interval to poll for hash changes, if necessary, is - // twenty times a second. - interval: 50, - - // Are we at the app root? - atRoot: function() { - var path = this.location.pathname.replace(/[^\/]$/, '$&/'); - return path === this.root && !this.getSearch(); - }, - - // Does the pathname match the root? - matchRoot: function() { - var path = this.decodeFragment(this.location.pathname); - var rootPath = path.slice(0, this.root.length - 1) + '/'; - return rootPath === this.root; - }, - - // Unicode characters in `location.pathname` are percent encoded so they're - // decoded for comparison. `%25` should not be decoded since it may be part - // of an encoded parameter. - decodeFragment: function(fragment) { - return decodeURI(fragment.replace(/%25/g, '%2525')); - }, - - // In IE6, the hash fragment and search params are incorrect if the - // fragment contains `?`. - getSearch: function() { - var match = this.location.href.replace(/#.*/, '').match(/\?.+/); - return match ? match[0] : ''; - }, - - // Gets the true hash value. Cannot use location.hash directly due to bug - // in Firefox where location.hash will always be decoded. - getHash: function(window) { - var match = (window || this).location.href.match(/#(.*)$/); - return match ? match[1] : ''; - }, - - // Get the pathname and search params, without the root. - getPath: function() { - var path = this.decodeFragment( - this.location.pathname + this.getSearch() - ).slice(this.root.length - 1); - return path.charAt(0) === '/' ? path.slice(1) : path; - }, - - // Get the cross-browser normalized URL fragment from the path or hash. - getFragment: function(fragment) { - if (fragment == null) { - if (this._usePushState || !this._wantsHashChange) { - fragment = this.getPath(); - } else { - fragment = this.getHash(); - } - } - return fragment.replace(routeStripper, ''); - }, - - // Start the hash change handling, returning `true` if the current URL matches - // an existing route, and `false` otherwise. - start: function(options) { - if (History.started) throw new Error('Backbone.history has already been started'); - History.started = true; - - // Figure out the initial configuration. Do we need an iframe? - // Is pushState desired ... is it available? - this.options = _.extend({root: '/'}, this.options, options); - this.root = this.options.root; - this._wantsHashChange = this.options.hashChange !== false; - this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7); - this._useHashChange = this._wantsHashChange && this._hasHashChange; - this._wantsPushState = !!this.options.pushState; - this._hasPushState = !!(this.history && this.history.pushState); - this._usePushState = this._wantsPushState && this._hasPushState; - this.fragment = this.getFragment(); - - // Normalize root to always include a leading and trailing slash. - this.root = ('/' + this.root + '/').replace(rootStripper, '/'); - - // Transition from hashChange to pushState or vice versa if both are - // requested. - if (this._wantsHashChange && this._wantsPushState) { - - // If we've started off with a route from a `pushState`-enabled - // browser, but we're currently in a browser that doesn't support it... - if (!this._hasPushState && !this.atRoot()) { - var rootPath = this.root.slice(0, -1) || '/'; - this.location.replace(rootPath + '#' + this.getPath()); - // Return immediately as browser will do redirect to new url - return true; - - // Or if we've started out with a hash-based route, but we're currently - // in a browser where it could be `pushState`-based instead... - } else if (this._hasPushState && this.atRoot()) { - this.navigate(this.getHash(), {replace: true}); - } - - } - - // Proxy an iframe to handle location events if the browser doesn't - // support the `hashchange` event, HTML5 history, or the user wants - // `hashChange` but not `pushState`. - if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) { - this.iframe = document.createElement('iframe'); - this.iframe.src = 'javascript:0'; - this.iframe.style.display = 'none'; - this.iframe.tabIndex = -1; - var body = document.body; - // Using `appendChild` will throw on IE < 9 if the document is not ready. - var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow; - iWindow.document.open(); - iWindow.document.close(); - iWindow.location.hash = '#' + this.fragment; - } - - // Add a cross-platform `addEventListener` shim for older browsers. - var addEventListener = window.addEventListener || function(eventName, listener) { - return attachEvent('on' + eventName, listener); - }; - - // Depending on whether we're using pushState or hashes, and whether - // 'onhashchange' is supported, determine how we check the URL state. - if (this._usePushState) { - addEventListener('popstate', this.checkUrl, false); - } else if (this._useHashChange && !this.iframe) { - addEventListener('hashchange', this.checkUrl, false); - } else if (this._wantsHashChange) { - this._checkUrlInterval = setInterval(this.checkUrl, this.interval); - } - - if (!this.options.silent) return this.loadUrl(); - }, - - // Disable Backbone.history, perhaps temporarily. Not useful in a real app, - // but possibly useful for unit testing Routers. - stop: function() { - // Add a cross-platform `removeEventListener` shim for older browsers. - var removeEventListener = window.removeEventListener || function(eventName, listener) { - return detachEvent('on' + eventName, listener); - }; - - // Remove window listeners. - if (this._usePushState) { - removeEventListener('popstate', this.checkUrl, false); - } else if (this._useHashChange && !this.iframe) { - removeEventListener('hashchange', this.checkUrl, false); - } - - // Clean up the iframe if necessary. - if (this.iframe) { - document.body.removeChild(this.iframe); - this.iframe = null; - } - - // Some environments will throw when clearing an undefined interval. - if (this._checkUrlInterval) clearInterval(this._checkUrlInterval); - History.started = false; - }, - - // Add a route to be tested when the fragment changes. Routes added later - // may override previous routes. - route: function(route, callback) { - this.handlers.unshift({route: route, callback: callback}); - }, - - // Checks the current URL to see if it has changed, and if it has, - // calls `loadUrl`, normalizing across the hidden iframe. - checkUrl: function(e) { - var current = this.getFragment(); - - // If the user pressed the back button, the iframe's hash will have - // changed and we should use that for comparison. - if (current === this.fragment && this.iframe) { - current = this.getHash(this.iframe.contentWindow); - } - - if (current === this.fragment) return false; - if (this.iframe) this.navigate(current); - this.loadUrl(); - }, - - // Attempt to load the current URL fragment. If a route succeeds with a - // match, returns `true`. If no defined routes matches the fragment, - // returns `false`. - loadUrl: function(fragment) { - // If the root doesn't match, no routes can match either. - if (!this.matchRoot()) return false; - fragment = this.fragment = this.getFragment(fragment); - return _.some(this.handlers, function(handler) { - if (handler.route.test(fragment)) { - handler.callback(fragment); - return true; - } - }); - }, - - // Save a fragment into the hash history, or replace the URL state if the - // 'replace' option is passed. You are responsible for properly URL-encoding - // the fragment in advance. - // - // The options object can contain `trigger: true` if you wish to have the - // route callback be fired (not usually desirable), or `replace: true`, if - // you wish to modify the current URL without adding an entry to the history. - navigate: function(fragment, options) { - if (!History.started) return false; - if (!options || options === true) options = {trigger: !!options}; - - // Normalize the fragment. - fragment = this.getFragment(fragment || ''); - - // Don't include a trailing slash on the root. - var rootPath = this.root; - if (fragment === '' || fragment.charAt(0) === '?') { - rootPath = rootPath.slice(0, -1) || '/'; - } - var url = rootPath + fragment; - - // Strip the hash and decode for matching. - fragment = this.decodeFragment(fragment.replace(pathStripper, '')); - - if (this.fragment === fragment) return; - this.fragment = fragment; - - // If pushState is available, we use it to set the fragment as a real URL. - if (this._usePushState) { - this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url); - - // If hash changes haven't been explicitly disabled, update the hash - // fragment to store history. - } else if (this._wantsHashChange) { - this._updateHash(this.location, fragment, options.replace); - if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) { - var iWindow = this.iframe.contentWindow; - - // Opening and closing the iframe tricks IE7 and earlier to push a - // history entry on hash-tag change. When replace is true, we don't - // want this. - if (!options.replace) { - iWindow.document.open(); - iWindow.document.close(); - } - - this._updateHash(iWindow.location, fragment, options.replace); - } - - // If you've told us that you explicitly don't want fallback hashchange- - // based history, then `navigate` becomes a page refresh. - } else { - return this.location.assign(url); - } - if (options.trigger) return this.loadUrl(fragment); - }, - - // Update the hash location, either replacing the current entry, or adding - // a new one to the browser history. - _updateHash: function(location, fragment, replace) { - if (replace) { - var href = location.href.replace(/(javascript:|#).*$/, ''); - location.replace(href + '#' + fragment); - } else { - // Some browsers require that `hash` contains a leading #. - location.hash = '#' + fragment; - } - } - - }); - - // Create the default Backbone.history. - Backbone.history = new History; - - // Helpers - // ------- - - // Helper function to correctly set up the prototype chain for subclasses. - // Similar to `goog.inherits`, but uses a hash of prototype properties and - // class properties to be extended. - var extend = function(protoProps, staticProps) { - var parent = this; - var child; - - // The constructor function for the new subclass is either defined by you - // (the "constructor" property in your `extend` definition), or defaulted - // by us to simply call the parent constructor. - if (protoProps && _.has(protoProps, 'constructor')) { - child = protoProps.constructor; - } else { - child = function(){ return parent.apply(this, arguments); }; - } - - // Add static properties to the constructor function, if supplied. - _.extend(child, parent, staticProps); - - // Set the prototype chain to inherit from `parent`, without calling - // `parent`'s constructor function and add the prototype properties. - child.prototype = _.create(parent.prototype, protoProps); - child.prototype.constructor = child; - - // Set a convenience property in case the parent's prototype is needed - // later. - child.__super__ = parent.prototype; - - return child; - }; - - // Set up inheritance for the model, collection, router, view and history. - Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend; - - // Throw an error when a URL is needed, and none is supplied. - var urlError = function() { - throw new Error('A "url" property or function must be specified'); - }; - - // Wrap an optional error callback with a fallback error event. - var wrapError = function(model, options) { - var error = options.error; - options.error = function(resp) { - if (error) error.call(options.context, model, resp, options); - model.trigger('error', model, resp, options); - }; - }; - - return Backbone; -}); diff --git a/src/wp-includes/js/backbone.min.js b/src/wp-includes/js/backbone.min.js deleted file mode 100644 index 19b8c90691..0000000000 --- a/src/wp-includes/js/backbone.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(t){var e=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global;if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,n){e.Backbone=t(e,n,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore"),r;try{r=require("jquery")}catch(n){}t(e,exports,i,r)}else{e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}})(function(t,e,i,r){var n=t.Backbone;var s=Array.prototype.slice;e.VERSION="1.3.3";e.$=r;e.noConflict=function(){t.Backbone=n;return this};e.emulateHTTP=false;e.emulateJSON=false;var a=function(t,e,r){switch(t){case 1:return function(){return i[e](this[r])};case 2:return function(t){return i[e](this[r],t)};case 3:return function(t,n){return i[e](this[r],o(t,this),n)};case 4:return function(t,n,s){return i[e](this[r],o(t,this),n,s)};default:return function(){var t=s.call(arguments);t.unshift(this[r]);return i[e].apply(i,t)}}};var h=function(t,e,r){i.each(e,function(e,n){if(i[n])t.prototype[n]=a(e,n,r)})};var o=function(t,e){if(i.isFunction(t))return t;if(i.isObject(t)&&!e._isModel(t))return l(t);if(i.isString(t))return function(e){return e.get(t)};return t};var l=function(t){var e=i.matches(t);return function(t){return e(t.attributes)}};var u=e.Events={};var c=/\s+/;var f=function(t,e,r,n,s){var a=0,h;if(r&&typeof r==="object"){if(n!==void 0&&"context"in s&&s.context===void 0)s.context=n;for(h=i.keys(r);athis.length)n=this.length;if(n<0)n+=this.length+1;var s=[];var a=[];var h=[];var o=[];var l={};var u=e.add;var c=e.merge;var f=e.remove;var d=false;var v=this.comparator&&n==null&&e.sort!==false;var g=i.isString(this.comparator)?this.comparator:null;var p,m;for(m=0;m7);this._useHashChange=this._wantsHashChange&&this._hasHashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.history&&this.history.pushState);this._usePushState=this._wantsPushState&&this._hasPushState;this.fragment=this.getFragment();this.root=("/"+this.root+"/").replace(O,"/");if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";this.location.replace(e+"#"+this.getPath());return true}else if(this._hasPushState&&this.atRoot()){this.navigate(this.getHash(),{replace:true})}}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe");this.iframe.src="javascript:0";this.iframe.style.display="none";this.iframe.tabIndex=-1;var r=document.body;var n=r.insertBefore(this.iframe,r.firstChild).contentWindow;n.document.open();n.document.close();n.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState){s("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){s("hashchange",this.checkUrl,false)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}if(!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};if(this._usePushState){t("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){t("hashchange",this.checkUrl,false)}if(this.iframe){document.body.removeChild(this.iframe);this.iframe=null}if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getHash(this.iframe.contentWindow)}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){if(!this.matchRoot())return false;t=this.fragment=this.getFragment(t);return i.some(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};t=this.getFragment(t||"");var i=this.root;if(t===""||t.charAt(0)==="?"){i=i.slice(0,-1)||"/"}var r=i+t;t=this.decodeFragment(t.replace(U,""));if(this.fragment===t)return;this.fragment=t;if(this._usePushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,r)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var n=this.iframe.contentWindow;if(!e.replace){n.document.open();n.document.close()}this._updateHash(n.location,t,e.replace)}}else{return this.location.assign(r)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var q=function(t,e){var r=this;var n;if(t&&i.has(t,"constructor")){n=t.constructor}else{n=function(){return r.apply(this,arguments)}}i.extend(n,r,e);n.prototype=i.create(r.prototype,t);n.prototype.constructor=n;n.__super__=r.prototype;return n};y.extend=x.extend=$.extend=k.extend=N.extend=q;var F=function(){throw new Error('A "url" property or function must be specified')};var B=function(t,e){var i=e.error;e.error=function(r){if(i)i.call(e.context,t,r,e);t.trigger("error",t,r,e)}};return e}); diff --git a/src/wp-includes/js/hoverIntent.js b/src/wp-includes/js/hoverIntent.js deleted file mode 100644 index c0fdf6529b..0000000000 --- a/src/wp-includes/js/hoverIntent.js +++ /dev/null @@ -1,115 +0,0 @@ -/*! - * hoverIntent v1.8.1 // 2014.08.11 // jQuery v1.9.1+ - * http://cherne.net/brian/resources/jquery.hoverIntent.html - * - * You may use hoverIntent under the terms of the MIT license. Basically that - * means you are free to use hoverIntent as long as this header is left intact. - * Copyright 2007, 2014 Brian Cherne - */ - -/* hoverIntent is similar to jQuery's built-in "hover" method except that - * instead of firing the handlerIn function immediately, hoverIntent checks - * to see if the user's mouse has slowed down (beneath the sensitivity - * threshold) before firing the event. The handlerOut function is only - * called after a matching handlerIn. - * - * // basic usage ... just like .hover() - * .hoverIntent( handlerIn, handlerOut ) - * .hoverIntent( handlerInOut ) - * - * // basic usage ... with event delegation! - * .hoverIntent( handlerIn, handlerOut, selector ) - * .hoverIntent( handlerInOut, selector ) - * - * // using a basic configuration object - * .hoverIntent( config ) - * - * @param handlerIn function OR configuration object - * @param handlerOut function OR selector for delegation OR undefined - * @param selector selector OR undefined - * @author Brian Cherne - */ -(function($) { - $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { - - // default configuration values - var cfg = { - interval: 100, - sensitivity: 6, - timeout: 0 - }; - - if ( typeof handlerIn === "object" ) { - cfg = $.extend(cfg, handlerIn ); - } else if ($.isFunction(handlerOut)) { - cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); - } else { - cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); - } - - // instantiate variables - // cX, cY = current X and Y position of mouse, updated by mousemove event - // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval - var cX, cY, pX, pY; - - // A private function for getting mouse position - var track = function(ev) { - cX = ev.pageX; - cY = ev.pageY; - }; - - // A private function for comparing current and previous mouse position - var compare = function(ev,ob) { - ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); - // compare mouse positions to see if they've crossed the threshold - if ( Math.sqrt( (pX-cX)*(pX-cX) + (pY-cY)*(pY-cY) ) < cfg.sensitivity ) { - $(ob).off("mousemove.hoverIntent",track); - // set hoverIntent state to true (so mouseOut can be called) - ob.hoverIntent_s = true; - return cfg.over.apply(ob,[ev]); - } else { - // set previous coordinates for next time - pX = cX; pY = cY; - // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) - ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); - } - }; - - // A private function for delaying the mouseOut function - var delay = function(ev,ob) { - ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); - ob.hoverIntent_s = false; - return cfg.out.apply(ob,[ev]); - }; - - // A private function for handling mouse 'hovering' - var handleHover = function(e) { - // copy objects to be passed into t (required for event object to be passed in IE) - var ev = $.extend({},e); - var ob = this; - - // cancel hoverIntent timer if it exists - if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } - - // if e.type === "mouseenter" - if (e.type === "mouseenter") { - // set "previous" X and Y position based on initial entry point - pX = ev.pageX; pY = ev.pageY; - // update "current" X and Y position based on mousemove - $(ob).on("mousemove.hoverIntent",track); - // start polling interval (self-calling timeout) to compare mouse coordinates over time - if (!ob.hoverIntent_s) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} - - // else e.type == "mouseleave" - } else { - // unbind expensive mousemove event - $(ob).off("mousemove.hoverIntent",track); - // if hoverIntent state is true, then call the mouseOut function after the specified delay - if (ob.hoverIntent_s) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} - } - }; - - // listen for mouseenter and mouseleave - return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); - }; -})(jQuery); diff --git a/src/wp-includes/js/imagesloaded.min.js b/src/wp-includes/js/imagesloaded.min.js deleted file mode 100644 index 02cc9f3c5f..0000000000 --- a/src/wp-includes/js/imagesloaded.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * imagesLoaded PACKAGED v3.2.0 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -(function(){"use strict";function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,s=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;t", { size: 1 } ).attr("size") && jQuery.attrFn, - oldAttr = jQuery.attr, - valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get || - function() { return null; }, - valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set || - function() { return undefined; }, - rnoType = /^(?:input|button)$/i, - rnoAttrNodeType = /^[238]$/, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - ruseDefault = /^(?:checked|selected)$/i; - -// jQuery.attrFn -migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" ); - -jQuery.attr = function( elem, name, value, pass ) { - var lowerName = name.toLowerCase(), - nType = elem && elem.nodeType; - - if ( pass ) { - // Since pass is used internally, we only warn for new jQuery - // versions where there isn't a pass arg in the formal params - if ( oldAttr.length < 4 ) { - migrateWarn("jQuery.fn.attr( props, pass ) is deprecated"); - } - if ( elem && !rnoAttrNodeType.test( nType ) && - (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) { - return jQuery( elem )[ name ]( value ); - } - } - - // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking - // for disconnected elements we don't warn on $( "