From 745ce347534317c773d35e55aedce659130fd341 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 2 Apr 2019 16:00:54 -0400 Subject: [PATCH 01/50] Enhanced how adding marks by URL works. Title is now optional. --- application/controllers/Marks.php | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/application/controllers/Marks.php b/application/controllers/Marks.php index 09102ed4..0e000eb3 100644 --- a/application/controllers/Marks.php +++ b/application/controllers/Marks.php @@ -11,16 +11,11 @@ public function __construct() $this->load->model('users_to_marks_model', 'user_marks'); } - public function add_by_url() - { - // Figure view - $this->figureView('marks/add_by_url'); - } - /* - Add a mark - URLS /mark/add + /mark/add/?url=URL /api/mark/add // Query variables @@ -34,18 +29,25 @@ public function add() $view = null; $add_from_url = ($this->input->post('add_from_url') !== null ) ? true : false; + if ( isset($_GET['url']) ) { + $add_from_url = true; + } + if ( $add_from_url ) : // URL submitted by form within app - $url = $this->input->post('url'); + + $url = (isset($_GET['url'])) ? $this->input->get('url') : $this->input->post('url'); + if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { // Adds HTTP if needed $url = "http://" . $url; } - $title = ''; + + $title = (isset($_GET['title'])) ? $this->input->get('title') : ''; $dom = new DOMDocument(); libxml_use_internal_errors(true); if (!$dom->loadHTMLFile($url, LIBXML_NOWARNING)) { foreach (libxml_get_errors() as $error) { // handle errors here - echo '

There was an error adding the mark.

'; + echo '

BACK There was an error adding the mark.

'; if ( $error->code == 1549 ) { echo '

Most likely the URL is invalid or the web site isn\'t currently available.

'; } From 38f86d03756cdec8333bc7ebcceb226aa7e38172 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Wed, 3 Apr 2019 14:28:36 -0400 Subject: [PATCH 02/50] Added count of bookmarks for a tag. --- application/views/layouts/navigation/tags_list.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/views/layouts/navigation/tags_list.php b/application/views/layouts/navigation/tags_list.php index f8f00cd7..d9aaca6c 100644 --- a/application/views/layouts/navigation/tags_list.php +++ b/application/views/layouts/navigation/tags_list.php @@ -1,6 +1,9 @@ -
  • #name; ?>
  • +
  • + #name; ?> + total); ?> +
  • From a52edc67302df7dd3fe04c1e0d8f554ef6264b89 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Thu, 4 Apr 2019 09:11:03 -0400 Subject: [PATCH 03/50] Updated version number --- application/config/config.php | 2 +- package.json | 2 +- service-worker.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 28236566..1624fa5c 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -11,7 +11,7 @@ | version.point.release | */ -$config['unmark_version'] = '1.9.2'; +$config['unmark_version'] = '2.0'; /* |-------------------------------------------------------------------------- diff --git a/package.json b/package.json index 294adda1..b401b7c2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "unmark", "url": "https://unmark.it", - "version": "1.9.2", + "version": "2.0", "repository": "https://github.com/cdevroe/unmark", "license": "https://github.com/cdevroe/unmark/blob/master/license.txt", "description": "The open source to-do application for bookmarks.", diff --git a/service-worker.js b/service-worker.js index fa833f14..55065665 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,4 +1,4 @@ -var CACHE_NAME = 'unmark-version-1.9.2'; +var CACHE_NAME = 'unmark-version-2.0'; var urlsToCache = [ '/assets/css/unmark.css', '/assets/libraries/jquery/jquery-2.1.0.min.js', From 98239c9d742286ec5925c201d4a2ba1480c9e289 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Thu, 4 Apr 2019 10:12:05 -0400 Subject: [PATCH 04/50] Updated Grunt tasks to include an updated release task and production task. --- Gruntfile.js | 32 ++++++++++++++++++++++++++++---- package-lock.json | 23 ++++++++++++++++++++++- package.json | 1 + 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index bdddcd51..378ed40d 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -83,6 +83,11 @@ module.exports = function(grunt) { } }, copy: { + custom: { + files: [ + {expand: true, flatten: false, cwd: '../unmark-internal/custom/', src: ['**'], dest: '../unmark/custom/'} + ] + }, release: { files: [ {expand: true, flatten: false, src: ['application/**', '!application/config/database.php'], dest: 'release/unmark/'}, @@ -105,6 +110,11 @@ module.exports = function(grunt) { ] } }, + clean: { + custom: ['custom/*'], + releasePrepare: ['release/*'], + releaseFinal: ['release/*', '!release/unmark.zip'] + }, compress: { dist: { options: { @@ -139,11 +149,25 @@ module.exports = function(grunt) { // Load the Tasks require('load-grunt-tasks')(grunt); - grunt.registerTask('default', [ 'sass:prod', 'uglify:prod' ]); // Default Build for OS Project + // --------------- TASKS + + // Default task: + // Compiles CSS, compresses JavaScript. + grunt.registerTask('default', [ 'sass:prod', 'uglify:prod' ]); + + // Release task: + // Cleans release directory, compiles CSS and compresses JavaScript. Copies all files to /release/unmark, compresses a zip, deletes /release/unmark + grunt.registerTask('release', [ 'clean:releasePrepare', 'sass:prod', 'uglify:prod', 'copy:release', 'compress:dist', 'clean:releaseFinal' ]); - grunt.registerTask('release', [ 'sass:prod', 'uglify:prod', 'copy:release' ]); // Build for OS release + // Dev build task: + // Does not compress files, easier to debug + grunt.registerTask('dev', [ 'sass:prod', 'concat:dev', 'concat:custom' ]); + + // Production build task: + // Deletes contents of custom folder, copies new custom files, compresses everything (used primarily for unmark.it) + grunt.registerTask('production', [ 'makeCustom', 'sass:prod', 'uglify:prod', 'uglify:custom' ]); - grunt.registerTask('dev', [ 'sass:prod', 'concat:dev', 'concat:custom' ]); // Dev build - grunt.registerTask('production', [ 'sass:prod', 'uglify:prod', 'uglify:custom' ]); // Default Production Build + // Utility tasks that deletes/copies /custom/ + grunt.registerTask( 'makeCustom', [ 'clean:custom', 'copy:custom' ] ); // Copies ../unmark-internal/custom to ../unmark/custom }; diff --git a/package-lock.json b/package-lock.json index 2d901b63..f2d6cadb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "unmark", - "version": "1.9.1", + "version": "1.9.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -986,6 +986,27 @@ } } }, + "grunt-contrib-clean": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.0.tgz", + "integrity": "sha512-g5ZD3ORk6gMa5ugZosLDQl3dZO7cI3R14U75hTM+dVLVxdMNJCPVmwf9OUt4v4eWgpKKWWoVK9DZc1amJp4nQw==", + "dev": true, + "requires": { + "async": "^2.6.1", + "rimraf": "^2.6.2" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + } + } + }, "grunt-contrib-compress": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz", diff --git a/package.json b/package.json index 294adda1..c906028a 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "grunt": "~1.0.4", "grunt-contrib-compress": "~1.4.3", "grunt-contrib-concat": "~1.0.1", + "grunt-contrib-clean": "~2.0.0", "grunt-contrib-copy": "~1.0.0", "grunt-contrib-sass": "~1.0.0", "grunt-contrib-uglify": "~4.0.1", From adfb0251bc33840af078443490340ca1719eb219 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Fri, 5 Apr 2019 13:29:39 -0400 Subject: [PATCH 05/50] Addressed an issue with empty URL given in the form. --- application/controllers/Marks.php | 63 +++++++++++++++++-------------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/application/controllers/Marks.php b/application/controllers/Marks.php index 0e000eb3..bcd1924d 100644 --- a/application/controllers/Marks.php +++ b/application/controllers/Marks.php @@ -12,7 +12,7 @@ public function __construct() } /* - - Add a mark + - Add a mark - URLS /mark/add /mark/add/?url=URL @@ -37,36 +37,43 @@ public function add() $url = (isset($_GET['url'])) ? $this->input->get('url') : $this->input->post('url'); - if (!preg_match("~^(?:f|ht)tps?://~i", $url)) { // Adds HTTP if needed + if ( !$url || $url == '' ) : + echo 'BACK - Please supply an URL.'; + exit; + endif; + + if (!preg_match("~^(?:f|ht)tps?://~i", $url)) : // Adds HTTP if needed $url = "http://" . $url; - } + endif; - $title = (isset($_GET['title'])) ? $this->input->get('title') : ''; - $dom = new DOMDocument(); - libxml_use_internal_errors(true); - if (!$dom->loadHTMLFile($url, LIBXML_NOWARNING)) { - foreach (libxml_get_errors() as $error) { - // handle errors here - echo '

    BACK There was an error adding the mark.

    '; - if ( $error->code == 1549 ) { - echo '

    Most likely the URL is invalid or the web site isn\'t currently available.

    '; - } - //print_r($error); - - } - libxml_clear_errors(); - exit; + $title = (isset($_GET['title'])) ? $this->input->get('title') : ''; // If title is supplied, use that + + if ( $title == '' ) : // If title is empty, go get it + $dom = new DOMDocument(); + libxml_use_internal_errors(true); + if (!$dom->loadHTMLFile($url, LIBXML_NOWARNING)) : + foreach (libxml_get_errors() as $error) : + // handle errors here + echo '

    BACK There was an error adding the mark.

    '; + if ( $error->code == 1549 ) : + echo '

    Most likely the URL is invalid or the web site isn\'t currently available.

    '; + endif; + endforeach; + libxml_clear_errors(); + exit; + + else : + $list = $dom->getElementsByTagName("title"); + if ($list->length > 0) : + $title = $list->item(0)->textContent; + endif; + endif; - } else { - $list = $dom->getElementsByTagName("title"); - if ($list->length > 0) { - $title = $list->item(0)->textContent; - } - } - - if ( strlen($title) == 0 ) : - $title = "Unknown Page Title"; - endif; + if ( strlen($title) == 0 ) : + $title = "Unknown Page Title"; + endif; + + endif; // end if empty title else : // URL submitted via bookmarklet, API, or mobile app $url = (isset($this->db_clean->url)) ? $this->db_clean->url : null; From 2dd77bd92fb24edb46cd001024b6a10265d21f79 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Thu, 11 Apr 2019 12:52:36 -0400 Subject: [PATCH 06/50] When URL bar to add link manually is shown focus is automatically given to the input field. Just like search. --- assets/js/unmark.init.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/js/unmark.init.js b/assets/js/unmark.init.js index f7e7f353..00d6e0b2 100644 --- a/assets/js/unmark.init.js +++ b/assets/js/unmark.init.js @@ -207,7 +207,10 @@ // Show & Hide Add Mark Bar $(document).on('click', '.marks-heading-bar .add-mark-button', function(e) { e.preventDefault(); - $(this).closest('.marks-heading-bar').find('.add-mark-bar').fadeIn(300); + //$(this).closest('.marks-heading-bar').find('.add-mark-bar').fadeIn(300); + $('.add-mark-bar').fadeIn(300, function(e){ + setTimeout("$('#add-mark-input').focus();", 0); + }); }); $(document).on('click', '.marks-heading-bar .add-mark-bar .close-button', function(e) { e.preventDefault(); From bf6a765fefc911063ff5eee80a6b7abf0b9cbf92 Mon Sep 17 00:00:00 2001 From: Kyle Ruane Date: Fri, 12 Apr 2019 09:21:04 -0400 Subject: [PATCH 07/50] Add selectize plugin --- application/views/layouts/footer.php | 17 + application/views/layouts/footer_scripts.php | 1 + .../views/layouts/footer_unlogged_scripts.php | 2 +- application/views/layouts/header.php | 3 + application/views/layouts/sidebar.php | 10 + assets/css/partials/_sidebar.scss | 58 ++ assets/js/templates/unmark-templates.js | 2 +- package-lock.json | 640 ++++-------------- 8 files changed, 229 insertions(+), 504 deletions(-) diff --git a/application/views/layouts/footer.php b/application/views/layouts/footer.php index 4ac72877..c29b8ed3 100644 --- a/application/views/layouts/footer.php +++ b/application/views/layouts/footer.php @@ -7,5 +7,22 @@ load->view('layouts/footer_scripts')?> + + + + diff --git a/application/views/layouts/footer_scripts.php b/application/views/layouts/footer_scripts.php index 048efbc7..d0ed22e2 100644 --- a/application/views/layouts/footer_scripts.php +++ b/application/views/layouts/footer_scripts.php @@ -3,5 +3,6 @@ load->view('layouts/jsvars'); ?> + diff --git a/application/views/layouts/footer_unlogged_scripts.php b/application/views/layouts/footer_unlogged_scripts.php index 59df66ae..8478b912 100644 --- a/application/views/layouts/footer_unlogged_scripts.php +++ b/application/views/layouts/footer_unlogged_scripts.php @@ -1,7 +1,7 @@ diff --git a/application/views/layouts/header.php b/application/views/layouts/header.php index 24eab4fe..d818a2bc 100644 --- a/application/views/layouts/header.php +++ b/application/views/layouts/header.php @@ -8,6 +8,9 @@ <?php echo unmark_phrase('Unmark'); ?> + + + diff --git a/application/views/layouts/sidebar.php b/application/views/layouts/sidebar.php index 1bc7441a..99df4f2f 100644 --- a/application/views/layouts/sidebar.php +++ b/application/views/layouts/sidebar.php @@ -37,3 +37,13 @@ */ ?> + + +
    +
    +
    +

    Tags

    + +
    +
    +
    diff --git a/assets/css/partials/_sidebar.scss b/assets/css/partials/_sidebar.scss index e2a682fa..3ffe7342 100644 --- a/assets/css/partials/_sidebar.scss +++ b/assets/css/partials/_sidebar.scss @@ -153,6 +153,64 @@ font-style: italic; border-bottom: 1px solid #e7e7e7; } + + /////// Tag Input Replacement + .selectize-control { + &.multi { + .item { + background: #62b3e4; + border-radius: 2px; + border: 1px solid darken(#62b3e4, 3%); + box-shadow: none; + text-shadow: none; + margin: 2px 3px 2px 2px; + &:last-of-type { + margin-right: 6px; + } + &.active { + background: #62b3e4; + border-radius: 2px; + border: 1px solid darken(#62b3e4, 3%); + box-shadow: none; + text-shadow: none; + } + } + } + .selectize-input { + background: white; + border: 1px solid darken(desaturate($color_gray, 15%), 6%); + border-radius: 2px; + box-shadow: none; + padding: 10px 12px; + font-size: 13px; + line-height: 1.5; + color: lighten($color_dark, 5%); + transition: all .3s; + height: 39px; + &.has-items { + padding: 4px 5px; + } + } + .selectize-dropdown { + border: 1px solid darken(desaturate($color_gray, 15%), 6%); + background: #fff; + margin: -1px 0 0 0; + border-top: 0 none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border-radius: 0 0 3px 3px; + box-shadow: 0 12px 12px -16px transparentize($color_darkest, .8); + overflow: hidden; + .selectize-dropdown-content { + .create { + padding: 10px; + background: white; + color: $color_darkest; + } + } + } + } } .sidebar-mark-info { width: 100% !important; diff --git a/assets/js/templates/unmark-templates.js b/assets/js/templates/unmark-templates.js index eb9562ac..377a754e 100644 --- a/assets/js/templates/unmark-templates.js +++ b/assets/js/templates/unmark-templates.js @@ -2,6 +2,6 @@ if (unmark === undefined) { var unmark = {}; } unmark.template = unmark.template || {}; -unmark.template.sidebar = '

    URL

    '; +unmark.template.sidebar = '

    URL

    '; unmark.template.marks = '

    {{title}}

    {{nice_time}} {{prettyurl}}
    {{#archived_on}} {{/archived_on}} {{^archived_on}} {{/archived_on}}
    '; diff --git a/package-lock.json b/package-lock.json index f2d6cadb..e389176c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,21 +1,18 @@ { "name": "unmark", - "version": "1.9.2", + "version": "2.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 + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ajv": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "optional": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -26,14 +23,12 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "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.0" } @@ -41,15 +36,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "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.0.0", @@ -66,7 +58,6 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, "requires": { "lodash": "^4.17.11" } @@ -75,7 +66,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -89,7 +79,6 @@ "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.7" } @@ -100,7 +89,6 @@ "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.0.0", "graceful-fs": "^4.1.0", @@ -114,7 +102,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -128,7 +115,6 @@ "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.7" } @@ -139,8 +125,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -150,7 +134,6 @@ "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.2" }, @@ -158,28 +141,24 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" } } }, "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 + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" }, "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 + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "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.1" } @@ -187,21 +166,17 @@ "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 + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "optional": true, "requires": { "safer-buffer": "~2.1.0" } @@ -209,55 +184,42 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "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, - "optional": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true, - "optional": true + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } @@ -266,7 +228,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -276,8 +237,6 @@ "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, - "optional": true, "requires": { "inherits": "~2.0.0" } @@ -286,7 +245,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", - "dev": true, "requires": { "continuable-cache": "^0.3.1", "error": "^7.0.0", @@ -298,7 +256,6 @@ "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" @@ -308,7 +265,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -318,7 +274,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -327,38 +282,32 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" }, "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 + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", - "dev": true + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=" }, "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" }, "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.0.0", "map-obj": "^1.0.0" @@ -367,15 +316,12 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -385,28 +331,22 @@ "chownr": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true, - "optional": true + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" }, "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, - "optional": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "coffeescript": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", - "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", - "dev": true + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=" }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -414,21 +354,17 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -436,14 +372,12 @@ "commander": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, "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.1", "crc32-stream": "^2.0.0", @@ -454,33 +388,27 @@ "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 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "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, - "optional": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "continuable-cache": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", - "dev": true + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=" }, "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 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, "requires": { "buffer": "^5.1.0" } @@ -489,7 +417,6 @@ "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.4.4", "readable-stream": "^2.0.0" @@ -499,7 +426,6 @@ "version": "0.2.9", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz", "integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=", - "dev": true, "requires": { "lru-cache": "^2.5.0" } @@ -508,7 +434,6 @@ "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.1" } @@ -517,7 +442,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -526,8 +450,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, "requires": { "assert-plus": "^1.0.0" } @@ -536,7 +458,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, "requires": { "get-stdin": "^4.0.1", "meow": "^3.3.0" @@ -546,7 +467,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -554,15 +474,12 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "optional": true, "requires": { "mimic-response": "^1.0.0" } @@ -570,43 +487,32 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "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, - "optional": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "detect-libc": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", - "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", - "dev": true, - "optional": true + "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=" }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -616,7 +522,6 @@ "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" } @@ -625,7 +530,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "dev": true, "requires": { "string-template": "~0.2.1", "xtend": "~4.0.0" @@ -635,7 +539,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -643,67 +546,52 @@ "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 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "eventemitter2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" }, "expand-template": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", - "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", - "dev": true, - "optional": true + "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==" }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "optional": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "optional": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true, - "optional": true + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "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, - "optional": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "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.5.1" } @@ -712,7 +600,6 @@ "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.0" @@ -721,14 +608,12 @@ "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 + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=" }, "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.0.0", "pinkie-promise": "^2.0.0" @@ -738,7 +623,6 @@ "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.0" }, @@ -747,7 +631,6 @@ "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.4", "inherits": "2", @@ -760,7 +643,6 @@ "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.7" } @@ -770,16 +652,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "optional": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -789,21 +667,17 @@ "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -815,8 +689,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -832,7 +704,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, "requires": { "globule": "^1.0.0" } @@ -840,21 +711,17 @@ "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 + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "getobject": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", - "dev": true + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=" }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, "requires": { "assert-plus": "^1.0.0" } @@ -862,9 +729,7 @@ "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true, - "optional": true + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { "version": "3.2.11", @@ -880,7 +745,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, "requires": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -891,7 +755,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -905,7 +768,6 @@ "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.7" } @@ -915,8 +777,7 @@ "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, "grunt": { "version": "1.0.4", @@ -1206,14 +1067,12 @@ "grunt-known-options": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", - "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", - "dev": true + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==" }, "grunt-legacy-log": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", - "dev": true, "requires": { "colors": "~1.1.2", "grunt-legacy-log-utils": "~2.0.0", @@ -1225,7 +1084,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", - "dev": true, "requires": { "chalk": "~2.4.1", "lodash": "~4.17.10" @@ -1235,7 +1093,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", - "dev": true, "requires": { "async": "~1.5.2", "exit": "~0.1.1", @@ -1250,7 +1107,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "dev": true, "requires": { "duplexer": "^0.1.1" } @@ -1258,16 +1114,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "optional": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "optional": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -1277,7 +1129,6 @@ "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.0.0" } @@ -1285,40 +1136,32 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "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, - "optional": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "http-parser-js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", - "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", - "dev": true + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==" }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "optional": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -1329,7 +1172,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -1337,15 +1179,12 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "iltorb": { "version": "1.3.10", "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz", "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==", - "dev": true, - "optional": true, "requires": { "detect-libc": "^0.2.0", "nan": "^2.6.2", @@ -1357,7 +1196,6 @@ "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.0" } @@ -1366,7 +1204,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -1375,27 +1212,22 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "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.0" } @@ -1404,8 +1236,6 @@ "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, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1413,40 +1243,32 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "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, - "optional": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-yaml": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1455,37 +1277,27 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "optional": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "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, - "optional": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "optional": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -1497,7 +1309,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, "requires": { "readable-stream": "^2.0.5" } @@ -1505,8 +1316,7 @@ "livereload-js": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", - "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", - "dev": true + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" }, "load-grunt-tasks": { "version": "4.0.0", @@ -1524,7 +1334,6 @@ "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.2", "parse-json": "^2.2.0", @@ -1537,7 +1346,6 @@ "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" @@ -1546,22 +1354,19 @@ "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 + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "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.0" @@ -1570,20 +1375,17 @@ "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 + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "maxmin": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", - "dev": true, "requires": { "chalk": "^1.0.0", "figures": "^1.0.1", @@ -1594,14 +1396,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "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.2", @@ -1614,7 +1414,6 @@ "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.0" } @@ -1622,8 +1421,7 @@ "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 + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -1631,7 +1429,6 @@ "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.0.0", "decamelize": "^1.1.2", @@ -1648,16 +1445,12 @@ "mime-db": { "version": "1.38.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "dev": true, - "optional": true + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" }, "mime-types": { "version": "2.1.22", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "dev": true, - "optional": true, "requires": { "mime-db": "~1.38.0" } @@ -1665,15 +1458,12 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "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", "sigmund": "~1.0.0" @@ -1682,14 +1472,12 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "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" }, @@ -1697,22 +1485,19 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, "multimatch": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, "requires": { "array-differ": "^1.0.0", "array-union": "^1.0.1", @@ -1724,7 +1509,6 @@ "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.7" } @@ -1734,16 +1518,12 @@ "nan": { "version": "2.13.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "dev": true, - "optional": true + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" }, "node-abi": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz", "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==", - "dev": true, - "optional": true, "requires": { "semver": "^5.4.1" } @@ -1752,8 +1532,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "optional": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", @@ -1773,8 +1551,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1788,8 +1564,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1797,24 +1571,19 @@ "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" } } }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "dev": true, - "optional": true + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, "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" } @@ -1823,7 +1592,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -1835,7 +1603,6 @@ "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.0.1" } @@ -1844,8 +1611,6 @@ "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, - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -1856,27 +1621,22 @@ "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 + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "optional": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "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 + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -1884,23 +1644,17 @@ "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, - "optional": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "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, - "optional": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -1910,7 +1664,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, "requires": { "p-try": "^1.0.0" } @@ -1919,7 +1672,6 @@ "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.1.0" } @@ -1927,14 +1679,12 @@ "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 + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "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.2.0" } @@ -1943,7 +1693,6 @@ "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.0" } @@ -1951,20 +1700,17 @@ "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 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "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.2", "pify": "^2.0.0", @@ -1974,27 +1720,22 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true, - "optional": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "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.0" } @@ -2003,7 +1744,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, "requires": { "find-up": "^2.1.0" }, @@ -2012,7 +1752,6 @@ "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" } @@ -2023,8 +1762,6 @@ "version": "2.5.3", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz", "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==", - "dev": true, - "optional": true, "requires": { "detect-libc": "^1.0.3", "expand-template": "^1.0.2", @@ -2046,37 +1783,29 @@ "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" } } }, "pretty-bytes": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" }, "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 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true, - "optional": true + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, "pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "optional": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -2085,21 +1814,17 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "optional": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "raw-body": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", - "dev": true, "requires": { "bytes": "1", "string_decoder": "0.10" @@ -2108,8 +1833,7 @@ "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 + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -2117,8 +1841,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -2130,7 +1852,6 @@ "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.0.0", "normalize-package-data": "^2.3.2", @@ -2141,7 +1862,6 @@ "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.0.0", "read-pkg": "^1.0.0" @@ -2151,7 +1871,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2166,7 +1885,6 @@ "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" @@ -2175,14 +1893,12 @@ "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 + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "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.0" } @@ -2191,8 +1907,6 @@ "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "optional": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -2220,7 +1934,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -2228,14 +1941,12 @@ "resolve-from": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", - "dev": true + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "resolve-pkg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-1.0.0.tgz", "integrity": "sha1-4ZoV54rKLhJEYdySsuOUPvk0lNk=", - "dev": true, "requires": { "resolve-from": "^2.0.0" } @@ -2244,7 +1955,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, "requires": { "glob": "^7.1.3" }, @@ -2253,7 +1963,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2267,7 +1976,6 @@ "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.7" } @@ -2277,59 +1985,47 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-json-parse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", - "dev": true + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "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, - "optional": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simple-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true, - "optional": true + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" }, "simple-get": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "optional": true, "requires": { "decompress-response": "^3.3.0", "once": "^1.3.1", @@ -2339,14 +2035,12 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -2355,14 +2049,12 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, "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" @@ -2371,21 +2063,17 @@ "spdx-license-ids": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", - "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", - "dev": true + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==" }, "sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "optional": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -2401,21 +2089,17 @@ "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 + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" }, "string-template": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2426,7 +2110,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -2435,7 +2118,6 @@ "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.0.0" } @@ -2444,7 +2126,6 @@ "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.0" } @@ -2453,7 +2134,6 @@ "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" } @@ -2461,15 +2141,12 @@ "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, - "optional": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -2478,8 +2155,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "optional": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -2490,8 +2165,6 @@ "version": "1.16.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "dev": true, - "optional": true, "requires": { "chownr": "^1.0.1", "mkdirp": "^0.5.1", @@ -2503,8 +2176,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "optional": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -2516,7 +2187,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, "requires": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", @@ -2531,7 +2201,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", - "dev": true, "requires": { "body": "^5.1.0", "debug": "^3.1.0", @@ -2544,15 +2213,12 @@ "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "optional": true, "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" @@ -2561,24 +2227,19 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.0.1" } @@ -2586,15 +2247,12 @@ "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 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "uglify-js": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.2.tgz", "integrity": "sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg==", - "dev": true, "requires": { "commander": "~2.19.0", "source-map": "~0.6.1" @@ -2603,8 +2261,7 @@ "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 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -2612,7 +2269,6 @@ "version": "3.3.5", "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", - "dev": true, "requires": { "sprintf-js": "^1.0.3", "util-deprecate": "^1.0.2" @@ -2622,8 +2278,6 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "optional": true, "requires": { "punycode": "^2.1.0" } @@ -2631,27 +2285,22 @@ "uri-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", - "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", - "dev": true + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=" }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -2661,8 +2310,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "optional": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -2672,14 +2319,12 @@ "walkdir": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", - "dev": true + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=" }, "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.0", "websocket-extensions": ">=0.1.1" @@ -2688,14 +2333,12 @@ "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 + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -2703,16 +2346,12 @@ "which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true, - "optional": true + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -2720,20 +2359,17 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "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.0", From 7928ed829e2d41b75d0aa4b9c693d30f00748202 Mon Sep 17 00:00:00 2001 From: Kyle Ruane Date: Fri, 12 Apr 2019 10:18:25 -0400 Subject: [PATCH 08/50] Add remove button to tag pills --- application/views/layouts/footer.php | 1 + assets/css/partials/_sidebar.scss | 69 ++++++++++++++++++---------- assets/css/partials/_stream.scss | 4 +- 3 files changed, 49 insertions(+), 25 deletions(-) diff --git a/application/views/layouts/footer.php b/application/views/layouts/footer.php index c29b8ed3..4b63f053 100644 --- a/application/views/layouts/footer.php +++ b/application/views/layouts/footer.php @@ -12,6 +12,7 @@ - - diff --git a/application/views/layouts/sidebar.php b/application/views/layouts/sidebar.php index 99df4f2f..7a8df1f7 100644 --- a/application/views/layouts/sidebar.php +++ b/application/views/layouts/sidebar.php @@ -36,14 +36,4 @@ */ ?> - - - -
    -
    -
    -

    Tags

    - -
    -
    -
    + \ No newline at end of file diff --git a/assets/js/plugins/selectize.min.js b/assets/js/plugins/selectize.min.js new file mode 100644 index 00000000..43046c90 --- /dev/null +++ b/assets/js/plugins/selectize.min.js @@ -0,0 +1,4 @@ +/*! selectize.js - v0.12.6 | https://github.com/selectize/selectize.js | Apache License (v2) */ + +!function(a,b){"function"==typeof define&&define.amd?define("sifter",b):"object"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(!(a=e(String(a||"").toLowerCase()))||!a.length)return[];var b,c,d,g,i=[],j=a.split(/ +/);for(b=0,c=j.length;b0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,"number"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return"number"==typeof a&&"number"==typeof b?a>b?1:ab?1:b>a?-1:0)},c=function(a,b){var c,d,e,f;for(c=1,d=arguments.length;c=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName)&&("highlight"!==a.className||"SPAN"!==a.tagName))for(var j=0;j/g,">").replace(/"/g,""")},m={};m.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},m.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var n=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},o=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},p=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];if(-1===b.indexOf(c))return e.apply(a,arguments);f[c]=arguments},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},q=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},r=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},s=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;d").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).appendTo("body")),w.$testInput.text(b),s(c,w.$testInput,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]),w.$testInput.width()):0},u=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||!1!==a.data("grow"))&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=48&&f<=57||f>=65&&f<=90||f>=96&&f<=111||f>=186&&f<=222||32===f,46===f||8===f?(l=r(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):8===f&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):46===f&&void 0!==l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),(i=t(e,a)+4)!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},v=function(a){var b=document.createElement("div");return b.appendChild(a.cloneNode(!0)),b.innerHTML},w=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?1:2,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++w.count,highlightedValue:null,isBlurring:!1,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:o(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;e").addClass(r.wrapperClass).addClass(m).addClass(l),c=a("
    ").addClass(r.inputClass).addClass("items").appendTo(b),d=a('').appendTo(c).attr("tabindex",w.is(":disabled")?"-1":p.tabIndex),k=a(r.dropdownParent||b),e=a("
    ").addClass(r.dropdownClass).addClass(l).hide().appendTo(k),j=a("
    ").addClass(r.dropdownContentClass).appendTo(e),(o=w.attr("id"))&&(d.attr("id",o+"-selectized"),a("label[for='"+o+"']").attr("for",o+"-selectized")),p.settings.copyClassesToDropdown&&e.addClass(m),b.css({width:w[0].style.width}),p.plugins.names.length&&(n="plugin-"+p.plugins.names.join(" plugin-"),b.addClass(n),e.addClass(n)),(null===r.maxItems||r.maxItems>1)&&1===p.tagType&&w.attr("multiple","multiple"),p.settings.placeholder&&d.attr("placeholder",r.placeholder),!p.settings.splitOn&&p.settings.delimiter){var x=p.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");p.settings.splitOn=new RegExp("\\s*"+x+"+\\s*")}w.attr("autocorrect")&&d.attr("autocorrect",w.attr("autocorrect")),w.attr("autocapitalize")&&d.attr("autocapitalize",w.attr("autocapitalize")),d[0].type=w[0].type,p.$wrapper=b,p.$control=c,p.$control_input=d,p.$dropdown=e,p.$dropdown_content=j,e.on("mouseenter mousedown click","[data-disabled]>[data-selectable]",function(a){a.stopImmediatePropagation()}),e.on("mouseenter","[data-selectable]",function(){return p.onOptionHover.apply(p,arguments)}),e.on("mousedown click","[data-selectable]",function(){return p.onOptionSelect.apply(p,arguments)}),q(c,"mousedown","*:not(input)",function(){return p.onItemSelect.apply(p,arguments)}),u(d),c.on({mousedown:function(){return p.onMouseDown.apply(p,arguments)},click:function(){return p.onClick.apply(p,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return p.onKeyDown.apply(p,arguments)},keyup:function(){return p.onKeyUp.apply(p,arguments)},keypress:function(){return p.onKeyPress.apply(p,arguments)},resize:function(){p.positionDropdown.apply(p,[])},blur:function(){return p.onBlur.apply(p,arguments)},focus:function(){return p.ignoreBlur=!1,p.onFocus.apply(p,arguments)},paste:function(){return p.onPaste.apply(p,arguments)}}),v.on("keydown"+s,function(a){p.isCmdDown=a[f?"metaKey":"ctrlKey"],p.isCtrlDown=a[f?"altKey":"ctrlKey"],p.isShiftDown=a.shiftKey}),v.on("keyup"+s,function(a){a.keyCode===h&&(p.isCtrlDown=!1),16===a.keyCode&&(p.isShiftDown=!1),a.keyCode===g&&(p.isCmdDown=!1)}),v.on("mousedown"+s,function(a){if(p.isFocused){if(a.target===p.$dropdown[0]||a.target.parentNode===p.$dropdown[0])return!1;p.$control.has(a.target).length||a.target===p.$control[0]||p.blur(a.target)}}),t.on(["scroll"+s,"resize"+s].join(" "),function(){p.isOpen&&p.positionDropdown.apply(p,arguments)}),t.on("mousemove"+s,function(){p.ignoreHover=!1}),this.revertSettings={$children:w.children().detach(),tabindex:w.attr("tabindex")},w.attr("tabindex",-1).hide().after(p.$wrapper),a.isArray(r.items)&&(p.setValue(r.items),delete r.items),i&&w.on("invalid"+s,function(a){a.preventDefault(),p.isInvalid=!0,p.refreshState()}),p.updateOriginalInput(),p.refreshItems(),p.refreshState(),p.updatePlaceholder(),p.isSetup=!0,w.is(":disabled")&&p.disable(),p.on("change",this.onChange),w.data("selectize",p),w.addClass("selectized"),p.trigger("initialize"),!0===r.preload&&p.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'
    '+a.html+"
    "},optgroup_header:function(a,b){return'
    '+b(a[d])+"
    "},option:function(a,b){return'
    '+b(a[c])+"
    "},item:function(a,b){return'
    '+b(a[c])+"
    "},option_create:function(a,b){return'
    Add '+b(a.input)+"
    "}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]])&&this.on(a,b)},onClick:function(a){var b=this;b.isFocused&&b.isOpen||(b.focus(),a.preventDefault())},onMouseDown:function(b){var c=this,d=b.isDefaultPrevented();a(b.target);if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;if(c.isFull()||c.isInputHidden||c.isLocked)return void b.preventDefault();c.settings.splitOn&&setTimeout(function(){var b=c.$control_input.val();if(b.match(c.settings.splitOn))for(var d=a.trim(b).split(c.settings.splitOn),e=0,f=d.length;eh&&(j=g,g=h,h=j),e=g;e<=h;e++)i=l.$control[0].childNodes[e],-1===l.$activeItems.indexOf(i)&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,k=this;k.$activeOption&&k.$activeOption.removeClass("active"),k.$activeOption=null,b=a(b),b.length&&(k.$activeOption=b.addClass("active"),!c&&j(c)||(e=k.$dropdown_content.height(),f=k.$activeOption.outerHeight(!0),c=k.$dropdown_content.scrollTop()||0,g=k.$activeOption.offset().top-k.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?k.$dropdown_content.stop().animate({scrollTop:i},d?k.settings.scrollDuration:0):g=0;c--)-1!==f.items.indexOf(k(d.items[c].id))&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,l,m,n,o,p,q,r,s,t;void 0===b&&(b=!0);var u=this,w=a.trim(u.$control_input.val()),x=u.search(w),y=u.$dropdown_content,z=u.$activeOption&&k(u.$activeOption.attr("data-value"));for(g=x.items.length,"number"==typeof u.settings.maxOptions&&(g=Math.min(g,u.settings.maxOptions)),h={},i=[],c=0;c0||q,u.hasOptions?(x.items.length>0?(s=z&&u.getOption(z),s&&s.length?r=s:"single"===u.settings.mode&&u.items.length&&(r=u.getOption(u.items[0])),r&&r.length||(r=t&&!u.settings.addPrecedence?u.getAdjacentOption(t,1):y.find("[data-selectable]:first"))):r=t,u.setActiveOption(r),b&&!u.isOpen&&u.open()):(u.setActiveOption(null),b&&u.isOpen&&u.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;c=0&&e0),b.$control_input.data("grow",!c&&!d)},isFull:function(){ +return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},1===f.tagType){for(d=[],b=0,c=f.items.length;b'+l(e)+"");d.length||this.$input.attr("multiple")||d.push(''),f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&(a.hideInput(),a.isBlurring||a.$control_input.blur()),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a[0].getBoundingClientRect().width,top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(a){var b=Math.min(this.caretPos,this.items.length),c=a[0],d=this.buffer||this.$control[0];0===b?d.insertBefore(c,d.firstChild):d.insertBefore(c,d.childNodes[b]),this.setCaret(b+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&8===b.keyCode?-1:1,f=r(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;c0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&!1===l.settings.onDelete.apply(l,[g]))return!1;for(void 0!==h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h=this;0!==a&&(h.rtl&&(a*=-1),c=a>0?"last":"first",d=r(h.$control_input[0]),h.isFocused&&!h.isInputHidden?(f=h.$control_input.val().length,(a<0?0===d.start&&0===d.length:d.start===f)&&!f&&h.advanceCaret(a,b)):(g=h.$control.children(".active:"+c),g.length&&(e=h.$control.children(":not(input)").index(g),h.setActiveItem(null),h.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;d
    '+a.title+'×
    '}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),w.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e
    ',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),(f=k.length)&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;e1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(m.after(this,"positionDropdown",e),m.after(this,"refreshOptions",e))}),w.define("remove_button",function(b){b=a.extend({label:"×",title:"Remove",className:"remove",append:!0},b);if("single"===this.settings.mode)return void function(b,c){c.className="remove-single";var d=b,e=''+c.label+"",f=function(b,c){return a("").append(b).append(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=a(d.$input.context).attr("id"),i=(a("#"+h),d.settings.render.item);d.settings.render.item=function(a){return f(i.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(a){a.preventDefault(),d.isLocked||d.clear()})}}()}(this,b);!function(b,c){var d=b,e=''+c.label+"",f=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=d.settings.render.item;d.settings.render.item=function(a){return f(h.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(b){if(b.preventDefault(),!d.isLocked){var c=a(b.currentTarget).parent();d.setActiveItem(c),d.deleteSelection()&&d.setCaret(d.items.length)}})}}()}(this,b)}),w.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return 8===b.keyCode&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1)>=0&&dEdit Mark

    URL

    - +
    @@ -22,8 +22,13 @@

    URL

    Preview

    {{/embed}} -

    Notes (click to edit)

    - + +

    Tags

    +
    + +

    Notes (click to edit)

    + +
    diff --git a/assets/js/templates/mark-info-edit.html b/assets/js/templates/mark-info-edit.html new file mode 100644 index 00000000..d39bc965 --- /dev/null +++ b/assets/js/templates/mark-info-edit.html @@ -0,0 +1,32 @@ + +
    +
    +

    URL

    +
    + + +
    +
    + + + +
    \ No newline at end of file diff --git a/assets/js/templates/mark-info-list-item.html b/assets/js/templates/mark-info-list-item.html new file mode 100644 index 00000000..b97979fa --- /dev/null +++ b/assets/js/templates/mark-info-list-item.html @@ -0,0 +1,31 @@ +
    +

    {{title}}

    +
    + {{nice_time}} + + {{prettyurl}} +
    +
    + {{#archived_on}} + + + + {{/archived_on}} + {{^archived_on}} + + + + + + {{/archived_on}} +
    + +
    + +
    \ No newline at end of file diff --git a/assets/js/templates/unmark-templates.js b/assets/js/templates/unmark-templates.js index 377a754e..0db647b4 100644 --- a/assets/js/templates/unmark-templates.js +++ b/assets/js/templates/unmark-templates.js @@ -2,6 +2,41 @@ if (unmark === undefined) { var unmark = {}; } unmark.template = unmark.template || {}; -unmark.template.sidebar = '

    URL

    '; +//unmark.template.sidebar = '

    URL

    '; + + + +unmark.template.sidebar = ''+ +'
    '+ +'
    '+ +'

    URL

    '+ +'
    '+ +''+ +''+ +'
    '+ +'
    '+ +''+ +''+ +''+ +'
    '; unmark.template.marks = '

    {{title}}

    {{nice_time}} {{prettyurl}}
    {{#archived_on}} {{/archived_on}} {{^archived_on}} {{/archived_on}}
    '; diff --git a/assets/js/unmark.init.js b/assets/js/unmark.init.js index f7e7f353..9688be7c 100644 --- a/assets/js/unmark.init.js +++ b/assets/js/unmark.init.js @@ -162,25 +162,6 @@ return false; }); - - /*if ( $('#unmark-wrapper').hasClass('nav-active') ) { - $('.mobile-header .menu-activator').on( "click", function(e) { - e.preventDefault(); - $('#unmark-wrapper').removeClass('nav-active'); - $(this).toggleClass('active'); - }); - } - else { - $('.mobile-header .menu-activator').on( "click", function(e) { - e.preventDefault(); - $('#unmark-wrapper').removeClass(); - $('#unmark-wrapper').addClass('nav-active'); - $('.mobile-header #mobile-sidebar-show').removeClass('active'); - $(this).toggleClass('active'); - }); - } - */ - $('.mobile-header #mobile-sidebar-show').on( "click", function(e) { e.preventDefault(); $('#unmark-wrapper').removeClass(); @@ -214,6 +195,13 @@ $(this).closest('.add-mark-bar').fadeOut(300); }); + $(document).on('change','#input-tags',function(e){ + var mark_id = $(this).data('mark-id'), $tags = $(this).val(); + if ( !$tags || $tags == '' ) return; + unmark.saveTags( mark_id, $tags); + //console.log($(this).val()); + }); + }; // Get this baby in action diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index 28b71b1b..07fb48e7 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -20,6 +20,25 @@ mark_notehold = $('#mark-'+mark_id).find('.note-placeholder').text(); mark_nofade = mark_clicked.data('nofade'); + // Reformat tags to a csv string for mustache template + var mark_tags_string = ''; + var mark_tags_count = Object.keys(mark_obj['tags']).length; + var iterator = 1; + + for ( var tag in mark_obj['tags'] ) { + if ( tag === undefined ) { + continue; + } + if ( iterator == mark_tags_count ){ + mark_tags_string += tag.toString(); + } else { + mark_tags_string += tag.toString() + ','; + } + iterator++; + } + + mark_obj['tags_string'] = mark_tags_string; + // 1.6 // If the mark is clicked on is currently being edited, // do nothing @@ -67,16 +86,42 @@ if (unmark.sidebar_default.is(':visible')) { unmark.sidebar_default.fadeOut(400, function () { unmark.sidebar_mark_info.html(output).fadeIn(400, function () { - unmark.tagify_notes($('#notes-' + mark_id)); + //unmark.tagify_notes($('#notes-' + mark_id)); populateLabels(); + + // Tags + $('#input-tags').selectize({ + plugins: ['remove_button', 'restore_on_backspace'], + delimiter: ',', + persist: false, + create: function(input) { + return { + value: input, + text: input + } + } + }); + // $("section.sidebar-info-preview").fitVids(); }); }); } else { unmark.sidebar_mark_info.html(output); - unmark.tagify_notes($('#notes-' + mark_id)); + //unmark.tagify_notes($('#notes-' + mark_id)); populateLabels(); unmark.sidebar_mark_info.fadeIn(400, function () { + // Tags + $('#input-tags').selectize({ + plugins: ['remove_button'], + delimiter: ',', + persist: false, + create: function(input) { + return { + value: input, + text: input + } + } + }); //$("section.sidebar-info-preview").fitVids(); }); } @@ -147,7 +192,6 @@ }; // Handles editing of Mark information (title, notes) - // Renamed from editNotes in 1.6 unmark.marks_editMarkInfo = function (editField) { var editable_notes = editField.next(), notes, query; @@ -155,7 +199,7 @@ var id = $(editable_notes).data('id'); // Private function to save notes - function saveMarkInfo(title, notes, id) { + function saveMarkInfo(title, notes, tags, id) { // 1.6 // Cannot submit an empty title @@ -169,7 +213,7 @@ //setNoteHeading(3); } - query = 'title=' + unmark.urlEncode(title) + '¬es=' + unmark.urlEncode(notes); + query = 'title=' + unmark.urlEncode(title) + '¬es=' + unmark.urlEncode(notes) + '&tags='+unmark.urlEncode(tags); unmark.ajax('/mark/edit/'+id, 'post', query, function(res) { $('#mark-'+id).find('.note-placeholder').text(notes); }); @@ -273,6 +317,15 @@ unmark.ajax('/mark/edit/'+id, 'post', query); }; + // Save tags for a bookmark + unmark.saveTags = function ( id, tags ) { + if ( !tags || tags == '' ) return; + var title = $('#mark-'+id+' h2 a').text(); + + var query = 'title='+unmark.urlEncode(title)+'&tags=' + unmark.urlEncode(tags); + unmark.ajax('/mark/edit/'+id, 'post', query); + }; + // Method for adding a label unmark.marks_addLabel = function () { var mark, label_id, query, label_name, body_class, pattern, btn, From 1315366b35cfc2d89e3dc6cce5c21bc95b92a93b Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Sat, 13 Apr 2019 08:50:05 -0400 Subject: [PATCH 10/50] Removing tags now works. Simplified code. Added tag count updater. --- application/controllers/Marks.php | 7 +++++- application/core/Plain_Controller.php | 8 ++++++ assets/js/unmark.init.js | 12 ++++----- assets/js/unmark.marks.js | 35 +++++++++++++++++++++++++-- 4 files changed, 53 insertions(+), 9 deletions(-) diff --git a/application/controllers/Marks.php b/application/controllers/Marks.php index f67f2065..7c7e32e8 100644 --- a/application/controllers/Marks.php +++ b/application/controllers/Marks.php @@ -267,7 +267,12 @@ public function edit($mark_id=0) // If tags are present, set them if (isset($this->db_clean->tags)) { - $tags = explode( ',', $this->db_clean->tags ); + if ( $this->db_clean->tags == 'unmark:removeAllTags' ) { // Remove all tags by sending empty array + $tags = array(); + parent::removeTags($mark_id); + } else { + $tags = explode( ',', $this->db_clean->tags ); + } } // If tags are present, handle differently diff --git a/application/core/Plain_Controller.php b/application/core/Plain_Controller.php index 544241bd..b082b86d 100644 --- a/application/core/Plain_Controller.php +++ b/application/core/Plain_Controller.php @@ -192,6 +192,14 @@ protected function addMark($data=array()) } + protected function removeTags($mark_id) + { + $this->load->model('tags_model', 'tag'); + $this->load->model('user_marks_to_tags_model', 'mark_to_tag'); + + $delete = $this->mark_to_tag->delete("users_to_mark_id = '" . $mark_id . "' AND user_id = '" . $this->user_id . "'"); + } + protected function addTags($tags, $mark_id) { if (! empty($tags) && is_array($tags)) { diff --git a/assets/js/unmark.init.js b/assets/js/unmark.init.js index 9688be7c..b7bc3fc0 100644 --- a/assets/js/unmark.init.js +++ b/assets/js/unmark.init.js @@ -195,12 +195,12 @@ $(this).closest('.add-mark-bar').fadeOut(300); }); - $(document).on('change','#input-tags',function(e){ - var mark_id = $(this).data('mark-id'), $tags = $(this).val(); - if ( !$tags || $tags == '' ) return; - unmark.saveTags( mark_id, $tags); - //console.log($(this).val()); - }); + // $(document).on('change','#input-tags',function(e){ + // var mark_id = $(this).data('mark-id'), $tags = $(this).val(); + // if ( !$tags || $tags == '' ) return; + // unmark.saveTags( mark_id, $tags); + // //console.log($(this).val()); + // }); }; diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index 07fb48e7..77773feb 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -112,7 +112,7 @@ unmark.sidebar_mark_info.fadeIn(400, function () { // Tags $('#input-tags').selectize({ - plugins: ['remove_button'], + plugins: ['remove_button', 'restore_on_backspace'], delimiter: ',', persist: false, create: function(input) { @@ -120,6 +120,11 @@ value: input, text: input } + }, + onChange: function(input) { + console.log( 'tags: ' + input ); + unmark.saveTags( mark_id, input); + unmark.update_tag_count(); } }); //$("section.sidebar-info-preview").fitVids(); @@ -149,6 +154,27 @@ // Removed 1.9.2 unmark.updateCounts(); }; + unmark.update_tag_count = function () { + console.log('updating tag count'); + var tag_list = $('ul.tag-list'); + function updateTagCount(res) { + var i, tags = res.tags.popular, count; + for (i in tags) { + count = tags[i].total; + if (count === "1") { + count = count + " mark"; + } else if (count === "0") { + count = "no marks"; + } else { + count = count + " marks"; + } + tag_list.find('.tag-'+tags[i].tag_id + ' span').text(count); + } + } + unmark.getData('tags', updateTagCount); + // Removed 1.9.2 unmark.updateCounts(); + }; + // Archive & Restore Mark unmark.mark_archive = function (archive_link) { var id = archive_link.data("id"); @@ -319,8 +345,13 @@ // Save tags for a bookmark unmark.saveTags = function ( id, tags ) { - if ( !tags || tags == '' ) return; + //if ( !tags ) return; var title = $('#mark-'+id+' h2 a').text(); + + if ( tags == '' ) { + console.log('remove all tags'); + tags = 'unmark:removeAllTags'; + } var query = 'title='+unmark.urlEncode(title)+'&tags=' + unmark.urlEncode(tags); unmark.ajax('/mark/edit/'+id, 'post', query); From 1d873bb00e7cbc1769b4d19ca4a059f1e0907beb Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Mon, 15 Apr 2019 14:09:57 -0400 Subject: [PATCH 11/50] Added tags to bookmarklet/add bookmark view. --- application/controllers/Marks.php | 5 +---- application/views/marks/info.php | 15 +++++++++++++++ assets/js/unmark.init.js | 13 +++++++++++++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/application/controllers/Marks.php b/application/controllers/Marks.php index 7c7e32e8..395e0ea6 100644 --- a/application/controllers/Marks.php +++ b/application/controllers/Marks.php @@ -594,7 +594,7 @@ public function index() // Get stats, labels and tags // else skip this section and just return the marks if (parent::isWebView() === true) { - self::getStats(); + //self::getStats(); self::getLabels(); self::getTags(); } @@ -630,9 +630,6 @@ public function info($mark_id=0) $this->data['no_header'] = true; $this->data['no_footer'] = true; - // print_r($_GET['bookmarklet']); - // exit; - $this->data['bookmarklet'] = (isset($_GET['bookmarklet'])) ? $_GET['bookmarklet'] : true; // Figure view diff --git a/application/views/marks/info.php b/application/views/marks/info.php index 2a9cbab4..b7c48c39 100644 --- a/application/views/marks/info.php +++ b/application/views/marks/info.php @@ -36,8 +36,22 @@
      + +
      +

      Tags

      + + tags) ) : + $tag_csv = ''; + foreach ($mark->tags as $tag=>$tag_array) : + $tag_csv.=$tag.','; + endforeach; + $tag_csv = trim($tag_csv,','); + endif; ?> +
      +
      +

      Notes

      notes)) : ?> @@ -66,6 +80,7 @@ load->view('layouts/jsvars'); ?> + diff --git a/assets/js/unmark.init.js b/assets/js/unmark.init.js index b7bc3fc0..d25c0830 100644 --- a/assets/js/unmark.init.js +++ b/assets/js/unmark.init.js @@ -202,6 +202,19 @@ // //console.log($(this).val()); // }); + // Tags + $('#input-tags').selectize({ + plugins: ['remove_button', 'restore_on_backspace'], + delimiter: ',', + persist: false, + create: function(input) { + return { + value: input, + text: input + } + } + }); + }; // Get this baby in action From 49c9498fa3c509474e113a806acd798506ba57ef Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Mon, 15 Apr 2019 14:20:57 -0400 Subject: [PATCH 12/50] Commented out unused code. Will removed prior to release. --- assets/js/unmark.marks.js | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index 77773feb..e8350f5d 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -83,29 +83,29 @@ // Run the view interaction unmark.sidebar_mark_info.fadeOut(400, function () { - if (unmark.sidebar_default.is(':visible')) { - unmark.sidebar_default.fadeOut(400, function () { - unmark.sidebar_mark_info.html(output).fadeIn(400, function () { - //unmark.tagify_notes($('#notes-' + mark_id)); - populateLabels(); - - // Tags - $('#input-tags').selectize({ - plugins: ['remove_button', 'restore_on_backspace'], - delimiter: ',', - persist: false, - create: function(input) { - return { - value: input, - text: input - } - } - }); - - // $("section.sidebar-info-preview").fitVids(); - }); - }); - } else { + // if (unmark.sidebar_default.is(':visible')) { + // unmark.sidebar_default.fadeOut(400, function () { + // unmark.sidebar_mark_info.html(output).fadeIn(400, function () { + // //unmark.tagify_notes($('#notes-' + mark_id)); + // populateLabels(); + + // // Tags + // $('#input-tags').selectize({ + // plugins: ['remove_button', 'restore_on_backspace'], + // delimiter: ',', + // persist: false, + // create: function(input) { + // return { + // value: input, + // text: input + // } + // } + // }); + + // // $("section.sidebar-info-preview").fitVids(); + // }); + // }); + // } else { unmark.sidebar_mark_info.html(output); //unmark.tagify_notes($('#notes-' + mark_id)); populateLabels(); @@ -129,7 +129,7 @@ }); //$("section.sidebar-info-preview").fitVids(); }); - } + // } }); }; From eb1f5e1dd6b4335b64a17cacf959d8fd9810c32e Mon Sep 17 00:00:00 2001 From: Kyle Ruane Date: Tue, 16 Apr 2019 12:51:31 -0400 Subject: [PATCH 13/50] Style tag count figures, bookmarklet note box & tag field --- .../views/layouts/navigation/nav_panels.php | 2 +- application/views/marks/info.php | 62 +++--- assets/css/partials/_bookmarklet.scss | 179 +++++++++++++++--- assets/css/partials/_main.scss | 5 +- assets/css/partials/_navigation.scss | 11 ++ assets/css/partials/_sidebar.scss | 10 +- bookmarklets/unmark_default.js | 8 +- 7 files changed, 206 insertions(+), 71 deletions(-) diff --git a/application/views/layouts/navigation/nav_panels.php b/application/views/layouts/navigation/nav_panels.php index baf1d699..87ab5dd7 100644 --- a/application/views/layouts/navigation/nav_panels.php +++ b/application/views/layouts/navigation/nav_panels.php @@ -44,7 +44,7 @@ diff --git a/application/views/marks/info.php b/application/views/marks/info.php index b7c48c39..cd1476fb 100644 --- a/application/views/marks/info.php +++ b/application/views/marks/info.php @@ -6,6 +6,7 @@ <?php echo unmark_phrase('Unmark : Mark Added'); ?> + @@ -19,45 +20,46 @@
      +
      -

      title; ?>

      url); ?>
      -
      - - -
      -
        -
        -
        - -
        -

        Tags

        - - tags) ) : - $tag_csv = ''; - foreach ($mark->tags as $tag=>$tag_array) : - $tag_csv.=$tag.','; - endforeach; - $tag_csv = trim($tag_csv,','); - endif; ?> -
        -
        - -
        -

        Notes

        - notes)) : ?> - - - - - +
        +
        + + +
        +
          +
          +
          +
          +

          Tags

          + tags) ) : + $tag_csv = ''; + foreach ($mark->tags as $tag=>$tag_array) : + $tag_csv.=$tag.','; + endforeach; + $tag_csv = trim($tag_csv,','); + endif; ?> +
          +
          +
          +

          Notes

          +
          + notes)) : ?> + + + + + +
          +
          diff --git a/assets/css/partials/_bookmarklet.scss b/assets/css/partials/_bookmarklet.scss index 114661eb..e82d926f 100644 --- a/assets/css/partials/_bookmarklet.scss +++ b/assets/css/partials/_bookmarklet.scss @@ -1,11 +1,12 @@ // Bookmarklet Pop Up Window .mark-added { font-weight: 300; - .mark-added-block { + background: lighten($color_gray, 1%); + .mark-added-block { ///// feedback mesage across the top background: $color_darker; color: $color_white; - padding: 22px; - font-size: 14px; + padding: 18px 20px; + font-size: 13px; //@include title-text; //word-spacing: 1px; line-height: 13px; @@ -13,15 +14,15 @@ box-shadow: 0 -1px 0 0 transparentize($color_dark_gray, .8) inset; i { float: right; - margin-top: -5px; + margin-top: -3px; margin-right: -6px; - width: 24px; - height: 24px; + width: 20px; + height: 20px; background-size: 100%; } } - .mark-added-info { - padding: 32px 25px; + .mark-added-info { ///// mark title & url + padding: 28px 20px 22px; color: $color_white; background: white; border-bottom: 1px solid transparentize($color_dark_gray, .86); @@ -30,6 +31,7 @@ color: $color_darker; font-size: 26px; margin: 0 0 15px 0; + line-height: 1.2; } span { color: darken($color_light, 25%); @@ -39,10 +41,14 @@ @include unmark-truncate(400px); } } + .mark-added-meta { + padding: 28px 20px 0; + } .mark-added-settings { font-size: 12px; //border-top: 1px solid #e5e5e5; - padding: 25px; + //padding: 18px 20px; + margin-bottom: 20px; color: $color_dark_gray; position: relative; //@include title-text; @@ -56,7 +62,8 @@ font-size: 13px; &#currLabel { position: absolute; - left: 200px; + left: 172px; + top: 2px; padding-left: 0; } &:before { @@ -99,7 +106,19 @@ color: $color_red; } } - &.mark-added-note a { + &.mark-added-note { + .mark-added-note-box { + background: white; + border: 1px solid darken(desaturate($color_gray, 15%), 6%); + border-radius: 2px; + padding: 12px 14px; + font-size: 13px; + line-height: 1.5; + color: lighten($color_dark, 5%); + min-height: 90px; + transition: all .3s; + } + a { padding-left:0; text-transform: none; letter-spacing: normal; @@ -108,16 +127,24 @@ &:before { display:none; } + } + } + h4 { + font-size: 11px; + text-transform: uppercase; + letter-spacing: .01em; + margin-top: 0; + margin-bottom: 8px; } section { //display: none; - position: absolute; + //position: absolute; //background: $color_shade; //width: 100%; - left: 0px; - top: 45px; - opacity: .95; - padding: 10px 25px; + //left: 0px; + //top: 45px; + //opacity: .95; + //padding: 10px 25px; color: $color_darker; } textarea { @@ -146,16 +173,20 @@ @include font-smoothing; text-transform: none; } - &.mark-added-label section { + &.mark-added-label { + height: 20px; + margin-bottom: 28px; + section { padding: 0; top: 23px; left: 25px; z-index: 999; + } } #label-chosen { position: absolute; - left: 200px; - top: 24px; + left: 172px; + top: 1px; z-index: 9999; display: none; font-size: 13px; @@ -173,25 +204,108 @@ &.label-6 { color: $color_green; } &.label-7 { color: $color_red; } } + + /////// Tag Input Replacement + .selectize-control { + &.multi { + .item { + background: #62b3e4; + border-radius: 3px; + border: none; + box-shadow: none; + text-shadow: none; + margin: 2px 3px 2px 2px; + font-size: 12px; + padding: 2px 6px 2px 7px; + &:last-of-type { + margin-right: 6px; + } + &.active { + background: darken(#62b3e4, 12%); + border-radius: 3px; + border: none; + box-shadow: none; + text-shadow: none; + } + } + } + .selectize-input { + background: white; + border: 1px solid darken(desaturate($color_gray, 15%), 6%); + border-radius: 2px; + box-shadow: none; + padding: 10px 12px; + font-size: 13px; + line-height: 1.5; + color: lighten($color_dark, 5%); + transition: all .3s; + min-height: 40px; + &.has-items { + padding: 6px; + } + } + .selectize-dropdown { + border: 1px solid darken(desaturate($color_gray, 15%), 6%); + background: #fff; + margin: -1px 0 0 0; + border-top: 0 none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border-radius: 0 0 3px 3px; + box-shadow: 0 12px 12px -16px transparentize($color_darkest, .8); + overflow: hidden; + .selectize-dropdown-content { + .create { + padding: 10px; + background: white; + color: $color_darkest; + } + } + } + &.plugin-remove_button { + .remove { + width: 18px; + font-weight: 500; + font-size: 16px; + display: flex; + flex-direction: column; + height: 100%; + justify-content: center; + align-items: center; + padding: 0 0 1px 1px; + box-shadow: 1px 0 0 0 transparentize(white, .8) inset; + border: none; + border-radius: 0 3px 3px 0; + @include sm { + &:hover { + background: transparentize(darken(#62b3e4, 25%), .84); + } + } + } + } + } + } .mark-added-note { //border-bottom: 1px solid #e5e5e5; } .mark-added-actions { - padding: 35px 20px; - background: lighten($color_gray, 1%); - position: absolute; - bottom: 0; + padding: 10px 15px 34px; + //background: lighten($color_gray, 1%); + //position: absolute; + //bottom: 0; width: 100%; + display: flex; .delete-button { - width: 45%; + flex-basis: 45%; padding: 0 5px; - float: left; } .update-button { - width: 55%; - padding: 0 5px; - float: left; + flex-basis: 55%; + flex-grow: 1; + padding: 0 5px; + &:only-child {} } button { width: 100%; @@ -200,13 +314,18 @@ padding: 12px 0 14px; //@include title-text; @include font-smoothing; + text-transform: uppercase; + letter-spacing: .01em; + border-radius: 3px; font-size: 14px; - font-weight: 600; - box-shadow: 0 30px 60px -24px transparentize(white, .94) inset, 0 2px 7px 0 transparentize($color_dark_gray, .8); + font-weight: 700; + //box-shadow: 0 30px 60px -24px transparentize(white, .94) inset, 0 2px 7px 0 transparentize($color_dark_gray, .8); + box-shadow: 0 30px 60px -24px transparentize(white, .94) inset, 0 2px 7px 0 transparentize(darken($color_blue, 25%), .7); &.delete { //width: 39%; background: $color_red; margin-right: 0; + box-shadow: 0 30px 60px -24px transparentize(white, .94) inset, 0 2px 7px 0 transparentize(darken($color_red, 25%), .7); } } } diff --git a/assets/css/partials/_main.scss b/assets/css/partials/_main.scss index 562ee83f..817cbe09 100644 --- a/assets/css/partials/_main.scss +++ b/assets/css/partials/_main.scss @@ -65,11 +65,12 @@ content: ""; display: block; width: 100%; - height: 16px; + height: 12px; position: absolute; top: 100%; left: 0; - box-shadow: 0 6px 13px -6px transparentize(desaturate(darken($color_gray, 50%), 2%), .9) inset, 0 12px 30px -12px transparentize(desaturate(darken($color_gray, 50%), 2%), .93) inset; + //box-shadow: 0 6px 13px -6px transparentize(desaturate(darken($color_gray, 50%), 2%), .9) inset, 0 12px 30px -12px transparentize(desaturate(darken($color_gray, 50%), 2%), .93) inset; + background: linear-gradient(transparentize(desaturate(darken($color_gray, 50%), 2%), .95), transparentize(desaturate(darken($color_gray, 50%), 2%), .98), transparentize(desaturate(darken($color_gray, 50%), 2%), 1)); } .marks-heading-wrapper { margin: 0 auto; diff --git a/assets/css/partials/_navigation.scss b/assets/css/partials/_navigation.scss index 7e0ee115..4cc2ed95 100644 --- a/assets/css/partials/_navigation.scss +++ b/assets/css/partials/_navigation.scss @@ -361,6 +361,7 @@ list-style: none; color: $color_lighter; font-size: 14px; + position: relative; a { color: $color_white; border-bottom: none; @@ -369,6 +370,16 @@ display: block; font-size: 14px; } + span { + display: block; + font-weight: 600; + font-size: 11px; + color: transparentize($color_white, 0.45); + margin-top: 2px; + position: absolute; + right: 0; + top: 9px; + } } } } diff --git a/assets/css/partials/_sidebar.scss b/assets/css/partials/_sidebar.scss index ee8d1731..0ca86ffc 100644 --- a/assets/css/partials/_sidebar.scss +++ b/assets/css/partials/_sidebar.scss @@ -28,7 +28,7 @@ content: ""; display: block; width: 340px; - height: 16px; + height: 12px; position: fixed; top: 65px; right: -340px; @@ -36,13 +36,15 @@ transition: all .3s ease-in-out; @include md { top: 80px; - box-shadow: 0 6px 13px -6px transparentize(desaturate(darken($color_gray, 50%), 2%), .9) inset, 0 12px 30px -12px transparentize(desaturate(darken($color_gray, 50%), 2%), .93) inset; + //box-shadow: 0 6px 13px -6px transparentize(desaturate(darken($color_gray, 50%), 2%), .9) inset, 0 12px 30px -12px transparentize(desaturate(darken($color_gray, 50%), 2%), .93) inset; + background: linear-gradient(transparentize(desaturate(darken($color_gray, 50%), 2%), .95), transparentize(desaturate(darken($color_gray, 50%), 2%), .98), transparentize(desaturate(darken($color_gray, 50%), 2%), 1)); } @include xs { display: none; top: 120px; width: 280px; - box-shadow: 0 6px 13px -6px transparentize(desaturate(darken($color_gray, 50%), 2%), .9) inset, 0 12px 30px -12px transparentize(desaturate(darken($color_gray, 50%), 2%), .93) inset; + //box-shadow: 0 6px 13px -6px transparentize(desaturate(darken($color_gray, 50%), 2%), .9) inset, 0 12px 30px -12px transparentize(desaturate(darken($color_gray, 50%), 2%), .93) inset; + background: linear-gradient(transparentize(desaturate(darken($color_gray, 50%), 2%), .95), transparentize(desaturate(darken($color_gray, 50%), 2%), .98), transparentize(desaturate(darken($color_gray, 50%), 2%), 1)); } } &.active { @@ -427,7 +429,7 @@ margin-bottom: 36px; font-size: 14px; line-height: 23px; - overflow:hidden; + //overflow:hidden; a.social-link { float:left; border: 1px solid $color_light; diff --git a/bookmarklets/unmark_default.js b/bookmarklets/unmark_default.js index f2fdf6d9..1182ae29 100644 --- a/bookmarklets/unmark_default.js +++ b/bookmarklets/unmark_default.js @@ -1,4 +1,4 @@ -/* +/* Unmark Bookmarklet: Default This bookmarklet will open a window, allow the user to choose a label and add notes. */ @@ -8,13 +8,13 @@ javascript: (function () { l = 'https://unmark.it/mark/add?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&v=1&nowindow=yes&'; - var w = window.open(l + 'noui=1', 'Unmark', 'location=0,links=0,scrollbars=0,toolbar=0,width=594,height=585'); + var w = window.open(l + 'noui=1', 'Unmark', 'location=0,links=0,scrollbars=0,toolbar=0,width=420,height=596'); })(); // Minified -javascript:(function(){l="https://unmark.it/mark/add?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title)+"&v=1&nowindow=yes&";var e=window.open(l+"noui=1","Unmark","location=0,links=0,scrollbars=0,toolbar=0,width=594,height=485")})() +javascript:(function(){l="https://unmark.it/mark/add?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title)+"&v=1&nowindow=yes&";var e=window.open(l+"noui=1","Unmark","location=0,links=0,scrollbars=0,toolbar=0,width=420,height=596")})() // URL Encoded in Link -Unmark + \ No newline at end of file +Unmark + From 646acaa6776ad69e1e8ce3472d051dc6c5c7858f Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 16 Apr 2019 13:11:52 -0400 Subject: [PATCH 14/50] Added more debugging information to ajax errors. --- assets/js/unmark.js | 5 ++++- assets/js/unmark.marks.js | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/assets/js/unmark.js b/assets/js/unmark.js index e80fe3d3..ca9cc08f 100644 --- a/assets/js/unmark.js +++ b/assets/js/unmark.js @@ -30,7 +30,10 @@ if (unmark === undefined) { var unmark = {}; } var json = { 'error': error, 'status': status, - 'request': xhr + 'request': xhr, + 'url': path, + 'type': method.toUpperCase(), + 'data': query }; if ($.isFunction(callback)) { callback(json); diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index e8350f5d..b23d2345 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -122,7 +122,7 @@ } }, onChange: function(input) { - console.log( 'tags: ' + input ); + //console.log( 'tags: ' + input ); unmark.saveTags( mark_id, input); unmark.update_tag_count(); } @@ -155,9 +155,10 @@ }; unmark.update_tag_count = function () { - console.log('updating tag count'); + //console.log('updating tag count'); var tag_list = $('ul.tag-list'); function updateTagCount(res) { + console.log(res); var i, tags = res.tags.popular, count; for (i in tags) { count = tags[i].total; From 28c183b8e8eca5747d0e3f2252ca5116e33769eb Mon Sep 17 00:00:00 2001 From: Kyle Ruane Date: Tue, 16 Apr 2019 13:13:46 -0400 Subject: [PATCH 15/50] Fix label active state in bokkmarklet --- assets/css/partials/_bookmarklet.scss | 88 +++++++++++++++++++++++---- assets/css/partials/_sidebar.scss | 19 ++++++ 2 files changed, 94 insertions(+), 13 deletions(-) diff --git a/assets/css/partials/_bookmarklet.scss b/assets/css/partials/_bookmarklet.scss index e82d926f..ffd9d041 100644 --- a/assets/css/partials/_bookmarklet.scss +++ b/assets/css/partials/_bookmarklet.scss @@ -380,29 +380,91 @@ display: none; } } - &.label-2 a { + &.label-2 { + a { color: $color_orange_text; - &:before { background: $color_orange !important; } + &:before { background: $color_orange !important;} + } } - &.label-3 a { + &.label-3 { + a { color: $color_blue_text; - &:before { background: $color_blue !important; } + &:before { background: $color_blue !important;} + } } - &.label-4 a { - color: $color_yellow_text; - &:before { background: $color_yellow !important; } + &.label-4 { + a { + &:before { background: $color_yellow !important;} + } } - &.label-5 a { + &.label-5 { + a { color: $color_purple; - &:before { background: $color_purple !important; } + &:before { background: $color_purple !important;} + } } - &.label-6 a { + &.label-6 { + a { color: $color_green_text; - &:before { background: $color_green !important; } + &:before { background: $color_green !important;} + } } - &.label-7 a { + &.label-7 { + a { color: $color_red; - &:before { background: $color_red !important; } + &:before { background: $color_red !important;} + } } } } +.mark-added-label { + &.label-2 { + .label-choices { + li a { &:before { box-shadow: none; } } + .label-2 { + a { &:before { box-shadow: 0 0 0 3px #fbfcfd, 0 0 0 4px #c3d9e4; } } + } + } + } + &.label-3 { + .label-choices { + li a { &:before { box-shadow: none; } } + .label-3 { + a { &:before { box-shadow: 0 0 0 3px #fbfcfd, 0 0 0 4px #c3d9e4; } } + } + } + } + &.label-4 { + .label-choices { + li a { &:before { box-shadow: none; } } + .label-4 { + a { &:before { box-shadow: 0 0 0 3px #fbfcfd, 0 0 0 4px #c3d9e4; } } + } + } + } + &.label-5 { + .label-choices { + li a { &:before { box-shadow: none; } } + .label-5 { + a { &:before { box-shadow: 0 0 0 3px #fbfcfd, 0 0 0 4px #c3d9e4; } } + } + } + } + &.label-6 { + .label-choices { + li a { &:before { box-shadow: none; } } + .label-6 { + a { &:before { box-shadow: 0 0 0 3px #fbfcfd, 0 0 0 4px #c3d9e4; } } + } + } + } + &.label-7 { + .label-choices { + li a { &:before { box-shadow: none; } } + .label-7 { + a { &:before { box-shadow: 0 0 0 3px #fbfcfd, 0 0 0 4px #c3d9e4; } } + } + } + } + +} diff --git a/assets/css/partials/_sidebar.scss b/assets/css/partials/_sidebar.scss index 0ca86ffc..46852099 100644 --- a/assets/css/partials/_sidebar.scss +++ b/assets/css/partials/_sidebar.scss @@ -314,6 +314,25 @@ } } .mark-url { + h4 { + position: relative; + cursor: pointer; + @include title-text; + display: block; + margin: 0 0 8px; + font-size: 11px; + color: $color_dark_gray; + font-weight: 600; + i { + position: absolute; + right: 5px; + top: 4px; + color: $color_dark_gray; + background-size: 100%; + width: 10px; + height: 10px; + } + } .button-field { input { background: transparentize($color_white, .6); From 230544a6ce0abae03eb2fb721223120b90dfb81c Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 16 Apr 2019 13:20:55 -0400 Subject: [PATCH 16/50] Fixed bookmarklet page from being falsely set as false. --- application/controllers/Marks.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/Marks.php b/application/controllers/Marks.php index 395e0ea6..e2620d86 100644 --- a/application/controllers/Marks.php +++ b/application/controllers/Marks.php @@ -29,7 +29,7 @@ public function add() $view = null; $add_from_url = ($this->input->post('add_from_url') !== null ) ? true : false; - if ( isset($_GET['url']) ) { + if ( isset($_GET['url']) && !isset($_GET['title']) ) { $add_from_url = true; } From a48d1b529e93b69bf0ae59292f8228a7aa998a8c Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 16 Apr 2019 13:40:45 -0400 Subject: [PATCH 17/50] Updated bookmarklet to have placeholder text for tags. Updated sidebar to have textarea --- application/views/marks/info.php | 6 +-- assets/js/templates/JS-Templates.html | 9 +++-- assets/js/templates/mark-info-edit.html | 51 +++++++++++++------------ assets/js/templates/unmark-templates.js | 5 ++- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/application/views/marks/info.php b/application/views/marks/info.php index cd1476fb..a284ab15 100644 --- a/application/views/marks/info.php +++ b/application/views/marks/info.php @@ -47,14 +47,14 @@ endforeach; $tag_csv = trim($tag_csv,','); endif; ?> -
          +

          Notes

          notes)) : ?> - - + + diff --git a/assets/js/templates/JS-Templates.html b/assets/js/templates/JS-Templates.html index e912ea5c..d4d37184 100644 --- a/assets/js/templates/JS-Templates.html +++ b/assets/js/templates/JS-Templates.html @@ -8,7 +8,7 @@

          URL

          - +
          @@ -24,10 +24,11 @@

          Preview

          {{/embed}}

          Tags

          -
          +
          -

          Notes (click to edit)

          - + +

          Notes

          +
          diff --git a/assets/js/templates/mark-info-edit.html b/assets/js/templates/mark-info-edit.html index d39bc965..e13acb3f 100644 --- a/assets/js/templates/mark-info-edit.html +++ b/assets/js/templates/mark-info-edit.html @@ -1,32 +1,33 @@
          -
          -

          URL

          -
          - - -
          -
          - +
          \ No newline at end of file diff --git a/assets/js/templates/unmark-templates.js b/assets/js/templates/unmark-templates.js index 0db647b4..d31539c7 100644 --- a/assets/js/templates/unmark-templates.js +++ b/assets/js/templates/unmark-templates.js @@ -32,8 +32,9 @@ unmark.template.sidebar = '
          '+ ''+ From 8599d4171d3d89e8995c64d135f961eda405489f Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 16 Apr 2019 15:48:56 -0400 Subject: [PATCH 18/50] Title notes and tags now save from the sidebar --- application/views/marks/info.php | 2 +- assets/js/templates/JS-Templates.html | 70 +++++++------ assets/js/templates/mark-info-edit.html | 66 ++++++------ assets/js/templates/unmark-templates.js | 10 +- assets/js/unmark.actions.js | 6 +- assets/js/unmark.marks.js | 130 +++++++++++++----------- 6 files changed, 156 insertions(+), 128 deletions(-) diff --git a/application/views/marks/info.php b/application/views/marks/info.php index a284ab15..0985ce93 100644 --- a/application/views/marks/info.php +++ b/application/views/marks/info.php @@ -47,7 +47,7 @@ endforeach; $tag_csv = trim($tag_csv,','); endif; ?> -
          +

          Notes

          diff --git a/assets/js/templates/JS-Templates.html b/assets/js/templates/JS-Templates.html index d4d37184..73b30671 100644 --- a/assets/js/templates/JS-Templates.html +++ b/assets/js/templates/JS-Templates.html @@ -1,38 +1,44 @@ -
          -
          -

          URL

          -
          - - -
          -
          - - - -
          + + + +
          +
          +

          TITLE

          +
          + +
          +
          +
          +

          URL

          +
          + + +
          +
          + + + +
          diff --git a/assets/js/templates/mark-info-edit.html b/assets/js/templates/mark-info-edit.html index e13acb3f..f09a5ba7 100644 --- a/assets/js/templates/mark-info-edit.html +++ b/assets/js/templates/mark-info-edit.html @@ -1,33 +1,39 @@ -
          -
          -

          URL

          -
          - - + + + +
          +
          +

          TITLE

          +
          + +
          +
          +
          +

          URL

          +
          + + +
          +
          + -
          - -
          \ No newline at end of file + +

          Notes

          + + +
          + + \ No newline at end of file diff --git a/assets/js/templates/unmark-templates.js b/assets/js/templates/unmark-templates.js index d31539c7..27a94442 100644 --- a/assets/js/templates/unmark-templates.js +++ b/assets/js/templates/unmark-templates.js @@ -11,6 +11,12 @@ unmark.template.sidebar = ''+ '
          '+ +'
          '+ +'

          TITLE

          '+ +'
          '+ +''+ +'
          '+ +'
          '+ '
          '+ '

          URL

          '+ '
          '+ @@ -30,11 +36,11 @@ unmark.template.sidebar = '
          '+ ''+ diff --git a/assets/js/unmark.actions.js b/assets/js/unmark.actions.js index 16ffda73..8b3dba66 100644 --- a/assets/js/unmark.actions.js +++ b/assets/js/unmark.actions.js @@ -22,11 +22,13 @@ // Collapse Marks Info Sidebar // Hides the marks info and re-displays the default sidebar unmark.sidebar_collapse = function () { - $('.mark').removeClass('view-inactive').removeClass('view-active'); - $('[id^=mark-] h2').attr('contenteditable',false).removeClass('editable'); // 1.6 + //$('.mark').removeClass('view-inactive').removeClass('view-active'); + //$('[id^=mark-] h2').attr('contenteditable',false).removeClass('editable'); // 1.6 //unmark.sidebar_expand(true); unmark.sidebar_mark_info.fadeOut(400, function () { //unmark.sidebar_default.fadeIn(400); + clearInterval(intervalSaveTitle); + clearInterval(intervalSaveNotes); }); if (Modernizr.mq('only screen and (max-width: 768px)')) { $('.sidebar-content').removeClass('active'); diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index b23d2345..14872343 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -81,55 +81,61 @@ // Show Mobile Sidebar if (Modernizr.mq('only screen and (max-width: 480px)')) { $('#mobile-sidebar-show').trigger('click'); } - // Run the view interaction - unmark.sidebar_mark_info.fadeOut(400, function () { - // if (unmark.sidebar_default.is(':visible')) { - // unmark.sidebar_default.fadeOut(400, function () { - // unmark.sidebar_mark_info.html(output).fadeIn(400, function () { - // //unmark.tagify_notes($('#notes-' + mark_id)); - // populateLabels(); - - // // Tags - // $('#input-tags').selectize({ - // plugins: ['remove_button', 'restore_on_backspace'], - // delimiter: ',', - // persist: false, - // create: function(input) { - // return { - // value: input, - // text: input - // } - // } - // }); - - // // $("section.sidebar-info-preview").fitVids(); - // }); - // }); - // } else { - unmark.sidebar_mark_info.html(output); - //unmark.tagify_notes($('#notes-' + mark_id)); - populateLabels(); - unmark.sidebar_mark_info.fadeIn(400, function () { - // Tags - $('#input-tags').selectize({ - plugins: ['remove_button', 'restore_on_backspace'], - delimiter: ',', - persist: false, - create: function(input) { - return { - value: input, - text: input - } - }, - onChange: function(input) { - //console.log( 'tags: ' + input ); - unmark.saveTags( mark_id, input); - unmark.update_tag_count(); - } - }); - //$("section.sidebar-info-preview").fitVids(); - }); - // } + // Update Sidebar contents for this bookmark + unmark.sidebar_mark_info.html(output); + + populateLabels(); + + unmark.sidebar_mark_info.fadeIn(400, function () { + var input_title = $('#input-title'), + input_tags = $('#input-tags'), + input_notes = $('#input-notes'); + + intervalSaveTitle = setInterval(function(){ + if ( input_title.hasClass('contentsChanged') ) { + unmark.saveTitle( mark_id, input_title.val() ); + input_title.removeClass('contentsChanged'); + } + },1000); + + intervalSaveNotes = setInterval(function(){ + if ( input_notes.hasClass('contentsChanged') ) { + unmark.saveNotes( mark_id, input_notes.val() ); + input_notes.removeClass('contentsChanged'); + } + },1000); + + input_title.on('keyup', function(e){ + if ( !input_title.hasClass('contentsChanged') ) { + input_title.addClass('contentsChanged'); + } + }); + + input_notes.on('keyup', function(e){ + if ( !input_notes.hasClass('contentsChanged') ) { + input_notes.addClass('contentsChanged'); + } + }); + + // Initialize tags + input_tags.selectize({ + plugins: ['remove_button', 'restore_on_backspace'], + delimiter: ',', + persist: false, + create: function(input) { + return { + value: input, + text: input + } + }, + onChange: function(input) { + //console.log( 'tags: ' + input ); + unmark.saveTags( mark_id, input); + unmark.update_tag_count(); + } + }); + + }); }; @@ -191,7 +197,6 @@ }); }; - // Archive & Restore Mark unmark.mark_restore = function (archive_link) { var id = archive_link.data("id"); @@ -337,24 +342,27 @@ editable.focus(); // Set Focus }; - // Save me some notes! - unmark.saveNotes = function (id, note, title) { - if (title == '') return; - var query = 'title='+unmark.urlEncode(title)+'¬es=' + unmark.urlEncode(note); + // save title only, can't be blank + unmark.saveTitle = function (id, title) { + if ( title == '' ) return; + var query = 'title=' + unmark.urlEncode(title); + unmark.ajax('/mark/edit/'+id, 'post', query); + }; + + // Save notes, can be blank + unmark.saveNotes = function (id, note) { + var query = 'notes=' + unmark.urlEncode(note); unmark.ajax('/mark/edit/'+id, 'post', query); }; - // Save tags for a bookmark - unmark.saveTags = function ( id, tags ) { - //if ( !tags ) return; - var title = $('#mark-'+id+' h2 a').text(); + // Save tags, can be blank + unmark.saveTags = function (id, tags) { - if ( tags == '' ) { - console.log('remove all tags'); + if ( tags == '' ) { // Remove all tags tags = 'unmark:removeAllTags'; } - var query = 'title='+unmark.urlEncode(title)+'&tags=' + unmark.urlEncode(tags); + var query = 'tags=' + unmark.urlEncode(tags); unmark.ajax('/mark/edit/'+id, 'post', query); }; From e093399ec14e26f9084ae473047fd8e2901f69d6 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Wed, 17 Apr 2019 13:10:28 -0400 Subject: [PATCH 19/50] Updated bug when closing the bookmark sidebar --- assets/js/unmark.actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/unmark.actions.js b/assets/js/unmark.actions.js index 8b3dba66..8e19f5cb 100644 --- a/assets/js/unmark.actions.js +++ b/assets/js/unmark.actions.js @@ -22,7 +22,7 @@ // Collapse Marks Info Sidebar // Hides the marks info and re-displays the default sidebar unmark.sidebar_collapse = function () { - //$('.mark').removeClass('view-inactive').removeClass('view-active'); + $('.mark').removeClass('view-inactive').removeClass('view-active'); //$('[id^=mark-] h2').attr('contenteditable',false).removeClass('editable'); // 1.6 //unmark.sidebar_expand(true); unmark.sidebar_mark_info.fadeOut(400, function () { From ea24508513850b1f47ed5092b23a2ff033fdbdd9 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Mon, 22 Apr 2019 13:16:01 -0400 Subject: [PATCH 20/50] Removed unused file. Added link for error page. --- application/views/marks/add_by_url.php | 31 -------------------------- application/views/marks/error.php | 3 ++- 2 files changed, 2 insertions(+), 32 deletions(-) delete mode 100644 application/views/marks/add_by_url.php diff --git a/application/views/marks/add_by_url.php b/application/views/marks/add_by_url.php deleted file mode 100644 index 1b0dea9e..00000000 --- a/application/views/marks/add_by_url.php +++ /dev/null @@ -1,31 +0,0 @@ -URL:' . $url . '

          '; - - $title = ''; - $dom = new DOMDocument(); - libxml_use_internal_errors(true); - if ($dom->loadHTMLFile($_POST['url'])) { - $list = $dom->getElementsByTagName("title"); - if ($list->length > 0) { - $title = $list->item(0)->textContent; - } - } - $time_end = microtime(true); - if ( strlen($title) > 0 ) : echo '

          Title: ' . $title . '

          '; endif; - $execution_time = ($time_end - $time_start); - echo '

          Total Execution Time: '.$execution_time.' seconds

          '; - -endif; ?> - -
          - - - -
          - diff --git a/application/views/marks/error.php b/application/views/marks/error.php index 50f42397..2227b8d9 100644 --- a/application/views/marks/error.php +++ b/application/views/marks/error.php @@ -8,10 +8,11 @@
          -
          +

          Yikes!

          +

          BACK

          From 0c9f1e95e8c4ef92a580e18f7e1d332a72d5d8ce Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 30 Apr 2019 10:40:08 -0400 Subject: [PATCH 21/50] Removed the word marks from tag and label counts. Added tag id to tag list. --- application/controllers/Marks.php | 22 ++++++++----- .../views/layouts/navigation/tags_list.php | 2 +- assets/js/templates/unmark-templates.js | 2 +- assets/js/unmark.marks.js | 31 ++++++++++--------- 4 files changed, 33 insertions(+), 24 deletions(-) diff --git a/application/controllers/Marks.php b/application/controllers/Marks.php index e2620d86..23bc45fa 100644 --- a/application/controllers/Marks.php +++ b/application/controllers/Marks.php @@ -279,12 +279,16 @@ public function edit($mark_id=0) // Need to add to tags table first // Then create association // If notes are present set them - if (isset($tags)) { + if (isset($tags) && count($tags) > 0) { parent::addTags($tags, $mark_id); } - // Update users_to_marks record - $mark = $this->user_marks->update("users_to_marks.user_id = '" . $this->user_id . "' AND users_to_marks.users_to_mark_id = '" . $mark_id . "'", $options); + if ( isset($options) && count($options) > 0) { + // Update users_to_marks record + $mark = $this->user_marks->update("users_to_marks.user_id = '" . $this->user_id . "' AND users_to_marks.users_to_mark_id = '" . $mark_id . "'", $options); + } else { + $mark = $this->user_marks->readComplete($mark_id); + } // Check if it was updated if ($mark === false) { @@ -332,6 +336,8 @@ public function edit($mark_id=0) public function get($what='stats') { + log_message( 'DEBUG', 'Running get method for ' . $what ); + parent::redirectIfWebView(); $method = 'get' . ucwords($what); @@ -403,13 +409,15 @@ private function getStats() } - // Get the 10 most used tags for a user + // Get the 10 most used and most recent tags for a user private function getTags() { - $this->data['tags'] = array(); $this->load->model('user_marks_to_tags_model', 'user_tags'); - $this->data['tags']['popular'] = $this->user_tags->getPopular($this->user_id); - $this->data['tags']['recent'] = $this->user_tags->getMostRecent($this->user_id); + $this->data['tags'] = array(); + + + $this->data['tags']['popular'] = $this->user_tags->getPopular($this->user_id); + $this->data['tags']['recent'] = $this->user_tags->getMostRecent($this->user_id); } // The index of the marks page diff --git a/application/views/layouts/navigation/tags_list.php b/application/views/layouts/navigation/tags_list.php index d9aaca6c..b429ed2c 100644 --- a/application/views/layouts/navigation/tags_list.php +++ b/application/views/layouts/navigation/tags_list.php @@ -1,6 +1,6 @@ -
        • +
        • #name; ?> total); ?>
        • diff --git a/assets/js/templates/unmark-templates.js b/assets/js/templates/unmark-templates.js index 27a94442..21b2ec2f 100644 --- a/assets/js/templates/unmark-templates.js +++ b/assets/js/templates/unmark-templates.js @@ -40,7 +40,7 @@ unmark.template.sidebar = '
          '+ ''+ diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index 14872343..aeff8964 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -146,13 +146,13 @@ var i, labels = res.labels, count; for (i in labels) { count = labels[i].total_active_marks; - if (count === "1") { - count = count + " mark"; - } else if (count === "0") { - count = "no marks"; - } else { - count = count + " marks"; - } + // if (count === "1") { + // count = count + " mark"; + // } else if (count === "0") { + // count = "no marks"; + // } else { + // count = count + " marks"; + // } label_list.find('.label-'+labels[i].label_id + ' span').text(count); } } @@ -164,17 +164,18 @@ //console.log('updating tag count'); var tag_list = $('ul.tag-list'); function updateTagCount(res) { - console.log(res); + //console.log(res); var i, tags = res.tags.popular, count; for (i in tags) { + console.log(tags[i].name + ' - ' + tags[i].total); count = tags[i].total; - if (count === "1") { - count = count + " mark"; - } else if (count === "0") { - count = "no marks"; - } else { - count = count + " marks"; - } + // if (count === "1") { + // count = count + " mark"; + // } else if (count === "0") { + // count = "no marks"; + // } else { + // count = count + " marks"; + // } tag_list.find('.tag-'+tags[i].tag_id + ' span').text(count); } } From 3e18267a5f9969c872a05a791c0df9a79d9e61ea Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 30 Apr 2019 11:11:23 -0400 Subject: [PATCH 22/50] Tags list now is replaced with each tag add. --- assets/js/unmark.marks.js | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index aeff8964..5689fd68 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -130,7 +130,7 @@ }, onChange: function(input) { //console.log( 'tags: ' + input ); - unmark.saveTags( mark_id, input); + unmark.saveTags( mark_id, input ); unmark.update_tag_count(); } }); @@ -146,6 +146,7 @@ var i, labels = res.labels, count; for (i in labels) { count = labels[i].total_active_marks; + // Removed in 2.0 // if (count === "1") { // count = count + " mark"; // } else if (count === "0") { @@ -157,30 +158,18 @@ } } unmark.getData('labels', updateLabelCount); - // Removed 1.9.2 unmark.updateCounts(); }; unmark.update_tag_count = function () { - //console.log('updating tag count'); var tag_list = $('ul.tag-list'); function updateTagCount(res) { - //console.log(res); - var i, tags = res.tags.popular, count; + var i, tags = res.tags.popular, list = ''; for (i in tags) { - console.log(tags[i].name + ' - ' + tags[i].total); - count = tags[i].total; - // if (count === "1") { - // count = count + " mark"; - // } else if (count === "0") { - // count = "no marks"; - // } else { - // count = count + " marks"; - // } - tag_list.find('.tag-'+tags[i].tag_id + ' span').text(count); + list += '
        • #' + tags[i].name + '' + tags[i].total + '
        • '; } + tag_list.html(list); } unmark.getData('tags', updateTagCount); - // Removed 1.9.2 unmark.updateCounts(); }; // Archive & Restore Mark From bcbe536bcda750837581dd8f4a2b8b74065c741d Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Tue, 30 Apr 2019 12:54:08 -0400 Subject: [PATCH 23/50] Bookmark info sidebar now closes when navigation opens. --- assets/js/unmark.actions.js | 2 +- assets/js/unmark.marks.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/assets/js/unmark.actions.js b/assets/js/unmark.actions.js index 8e19f5cb..a148d8bf 100644 --- a/assets/js/unmark.actions.js +++ b/assets/js/unmark.actions.js @@ -68,7 +68,7 @@ // This handles both the top level and secondary level unmark.interact_nav = function (e, elem_ckd) { e.preventDefault(); - + unmark.sidebar_collapse(); // close bookmark info panel var panel_to_show = (elem_ckd.data('panel')) ? elem_ckd.data('panel') : '', // kept in data attribute panel_name = (panel_to_show !== '') ? panel_to_show.replace(/^#/, '') : '', // just removes # is_label_menu = (panel_name.indexOf('label') !== -1) ? true : false, // checks name of panel to see if this is label menu diff --git a/assets/js/unmark.marks.js b/assets/js/unmark.marks.js index 5689fd68..b5d3b3bd 100644 --- a/assets/js/unmark.marks.js +++ b/assets/js/unmark.marks.js @@ -129,9 +129,8 @@ } }, onChange: function(input) { - //console.log( 'tags: ' + input ); unmark.saveTags( mark_id, input ); - unmark.update_tag_count(); + setTimeout(unmark.update_tag_count,1000); // Delayed slightly, otherwise 404 (unsure why) } }); From db99a3e1dd809259e923885284d313d86f5702c7 Mon Sep 17 00:00:00 2001 From: Colin Devroe Date: Fri, 13 Dec 2019 14:15:41 -0500 Subject: [PATCH 24/50] Mark title is now editable in an input box in sidebar. Several sidebar styling fixes. Some code removed or marked for removal. --- application/views/marks/info.php | 4 +- assets/css/partials/_sidebar.scss | 14 ++++-- assets/js/templates/JS-Templates.html | 66 ++++++++++++------------- assets/js/templates/mark-info-edit.html | 64 ++++++++++++------------ assets/js/templates/unmark-templates.js | 53 +++++++++++++++++--- assets/js/unmark.marks.js | 44 +++++++++-------- 6 files changed, 146 insertions(+), 99 deletions(-) diff --git a/application/views/marks/info.php b/application/views/marks/info.php index 0985ce93..f110b3a9 100644 --- a/application/views/marks/info.php +++ b/application/views/marks/info.php @@ -54,9 +54,9 @@
          notes)) : ?> - + - +
          diff --git a/assets/css/partials/_sidebar.scss b/assets/css/partials/_sidebar.scss index 46852099..d5e2ec21 100644 --- a/assets/css/partials/_sidebar.scss +++ b/assets/css/partials/_sidebar.scss @@ -313,7 +313,7 @@ } } } - .mark-url { + .mark-title, .mark-url { h4 { position: relative; cursor: pointer; @@ -547,12 +547,20 @@ textarea { width: 100%; min-height: 75px; - border: none; - background-color: $color_shade; + background: white; + border: 1px solid darken(desaturate($color_gray, 15%), 6%); + border-radius: 2px; + box-shadow: none; + padding: 10px 12px; + font-size: 13px; + line-height: 1.5; + color: lighten($color_dark, 5%); + /*background-color: $color_shade;*/ } } button { clear: both; + margin-top: 30px; width: 100%; padding: 10px 20px 13px; font-size: 14px; diff --git a/assets/js/templates/JS-Templates.html b/assets/js/templates/JS-Templates.html index 73b30671..138fd9dc 100644 --- a/assets/js/templates/JS-Templates.html +++ b/assets/js/templates/JS-Templates.html @@ -1,44 +1,42 @@ -
          -
          -

          TITLE

          -
          - -
          -
          -
          -

          URL

          + + + +
          +
          +

          TITLE

          - - +
          -
          -
          +
          +

          URL

          +
          + +
          -
          + + - -
          +

          Tags

          +
          + +

          Notes

          + + + + diff --git a/assets/js/templates/mark-info-edit.html b/assets/js/templates/mark-info-edit.html index f09a5ba7..046215dc 100644 --- a/assets/js/templates/mark-info-edit.html +++ b/assets/js/templates/mark-info-edit.html @@ -1,39 +1,37 @@ -