diff --git a/.gitignore b/.gitignore index b512c09..d6e9732 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,7 @@ -node_modules \ No newline at end of file +node_modules +.history +yarn.lock +package-lock.json +*.vsix +.DS_Store +dist diff --git a/.vscodeignore b/.vscodeignore index dc1e7e9..441c17c 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -4,3 +4,6 @@ test/** .gitignore jsconfig.json vsc-extension-quickstart.md +.history +src +webpack.config.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 35a8854..a04ecae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,5 @@ # Change Log -## [2.0.1] - 2017-07-20 -### Fixed - - Hotkeys for windows -## [2.0.0] - 2017-07-19 -### Added - - subWord navigation mode for cursor -### BREAKING CHANGE - - New keybinds for the anchors (`ctrl+alt+(down, up), escape`) +## 0.0.1 -## [1.0] - 0000-00-00 - - Initial release +- Initial release diff --git a/README.md b/README.md index 4949795..74305da 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,8 @@ -# [vscode-ext-cursor-tools](https://github.com/naumovs/vscode-ext-cursor-tools) -With this extension you can leave anchors in the document at cursor position and later on activate create multiple cursors out of all anchors in the current editor. +based on https://github.com/naumovs/vscode-ext-cursor-tools + new features -Also it has a feature of sub-word navigation. +### New -## Install -In VSC press Ctrl+Shift+P (Cmd+Shift+P on Mac) then type ">ext install", hit enter, search "Cursor tools". - -Still confused? Click "Get Started" above. - -## Usage - -Keybinds: - - ctrl+alt+down - toggle anchor at current place - - ctrl+alt+up - create cursors at anchor positions - - escape - Remove all anchors in current document - -## Contribution - -Feel free to contribute! -Have ideas? Create issues at the github repo \ No newline at end of file +- add config to control the decoration styles +- add support to multi cursors +- change the default keybinding of decoration cancel +- remove camelcase nav as its natively supported by vscode diff --git a/dist/extension.js b/dist/extension.js index 6e29d48..60f46fd 100644 --- a/dist/extension.js +++ b/dist/extension.js @@ -72,105 +72,131 @@ module.exports = const vscode = __webpack_require__(1); +const config = vscode.workspace.getConfiguration('cursor-tools'); const decor = vscode.window.createTextEditorDecorationType({ - borderStyle: 'solid', - borderWidth: '1px', - borderColor: 'rgba(255, 255, 255, 0.3)', - light: { - borderColor: 'rgba(0, 0, 0, 0.3)' - } + borderStyle: config.border.style, + borderWidth: config.border.width, + borderColor: config.border.color || new vscode.ThemeColor("editorCursor.foreground") }); module.exports = { - onCommandToggleAnchor, - onCommandActivateCursors, - onCommandCleanAnchors, - onDidChangeTextDocument + onCommandToggleAnchor, + onCommandActivateCursors, + onCommandCleanAnchors, + onDidChangeTextDocument }; -function onCommandToggleAnchor(textEditor, textEditorEdit) { - const currentDocumentOffset = textEditor.document.offsetAt(textEditor.selection.active); - const index = isAnchorExist(textEditor, currentDocumentOffset); +function onCommandToggleAnchor(textEditor) { + let document = textEditor.document, + selections = textEditor.selections, + cursorAnchors = textEditor.cursorAnchors; - if (index === -1) { - textEditor.cursorAnchors.push(currentDocumentOffset); - } else { - textEditor.cursorAnchors.splice(index, 1); - } - setContext(textEditor.cursorAnchors.length > 0); + for (var _iterator = selections, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; - updateDecorations(textEditor); + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + const selection = _ref; + + const currentDocumentOffset = document.offsetAt(selection.active); + const index = isAnchorExist(textEditor, currentDocumentOffset); + + index < 0 ? cursorAnchors.push(currentDocumentOffset) : cursorAnchors.splice(index, 1); + } + + setContext(cursorAnchors.length > 0); + updateDecorations(textEditor); } function onCommandActivateCursors(textEditor, textEditorEdit) { - const currentDocumentOffset = textEditor.document.offsetAt(textEditor.selection.active); + let currentDocumentOffset = []; - textEditor.selections = [currentDocumentOffset].concat(textEditor.cursorAnchors).map(createSelection.bind(textEditor)); + if (config.includeCurrentCursorOnActivate) { + currentDocumentOffset = [textEditor.document.offsetAt(textEditor.selection.active)]; + } - onCommandCleanAnchors(textEditor, textEditorEdit); + textEditor.selections = currentDocumentOffset.concat(textEditor.cursorAnchors).map(createSelection.bind(textEditor)); + + onCommandCleanAnchors(textEditor, textEditorEdit); } -function onCommandCleanAnchors(textEditor, textEditorEdit) { - textEditor.cursorAnchors = []; +function onCommandCleanAnchors(textEditor) { + textEditor.cursorAnchors = []; - setContext(false); + setContext(false); - updateDecorations(textEditor); + updateDecorations(textEditor); } function onDidChangeTextDocument(textDocumentChangeEvent) { - const textEditor = vscode.window.activeTextEditor; - const textDocument = textDocumentChangeEvent.document; + if (!textDocumentChangeEvent) { + return; + } + + const textEditor = vscode.window.activeTextEditor; + + if (!textEditor) { + return; + } - if (textEditor.document !== textDocument) { - return; - } + const textDocument = textDocumentChangeEvent.document; - const filters = textDocumentChangeEvent.contentChanges.map(contentChange => { - const offsetStart = textDocument.offsetAt(contentChange.range.start); - const offsetEnd = textDocument.offsetAt(contentChange.range.end); + if (textEditor.document !== textDocument) { + return; + } + + const filters = textDocumentChangeEvent.contentChanges.map(contentChange => { + const offsetStart = textDocument.offsetAt(contentChange.range.start); + const offsetEnd = textDocument.offsetAt(contentChange.range.end); - return offset => !(offset >= offsetStart && offset <= offsetEnd); - }); + return offset => !(offset >= offsetStart && offset <= offsetEnd); + }); - textEditor.cursorAnchors = filters.reduce((acc, fn) => acc.filter(fn), textEditor.cursorAnchors).map(offset => { - return textDocumentChangeEvent.contentChanges.reduce((acc, contentChange) => { - if (textDocument.offsetAt(contentChange.range.start) <= offset) { - return acc - contentChange.rangeLength + contentChange.text.length; - } + textEditor.cursorAnchors = filters.reduce((acc, fn) => acc.filter(fn), textEditor.cursorAnchors).map(offset => { + return textDocumentChangeEvent.contentChanges.reduce((acc, contentChange) => { + if (textDocument.offsetAt(contentChange.range.start) <= offset) { + return acc - contentChange.rangeLength + contentChange.text.length; + } - return acc; - }, offset); - }); + return acc; + }, offset); + }); - updateDecorations(textEditor); + updateDecorations(textEditor); } function updateDecorations(textEditor) { - const decorRange = textEditor.cursorAnchors.map(createRange.bind(textEditor)); + const decorRange = textEditor.cursorAnchors.map(createRange.bind(textEditor)); - textEditor.setDecorations(decor, decorRange); + textEditor.setDecorations(decor, decorRange); } function isAnchorExist(textEditor, currentDocumentOffset) { - return textEditor.cursorAnchors.indexOf(currentDocumentOffset); + return textEditor.cursorAnchors.indexOf(currentDocumentOffset); } function createSelection(offset) { - const position = this.document.positionAt(offset); + const position = this.document.positionAt(offset); - return new vscode.Selection(position, position); + return new vscode.Selection(position, position); } function createRange(offset) { - const position = this.document.positionAt(offset); + const position = this.document.positionAt(offset); - return new vscode.Range(position, position); + return new vscode.Range(position, position); } function setContext(value) { - vscode.commands.executeCommand('setContext', 'cursorToolsAnchors', value); + vscode.commands.executeCommand('setContext', 'cursorToolsAnchors', value); } /***/ }), @@ -191,273 +217,27 @@ const onCommandToggleAnchor = __webpack_require__(0).onCommandToggleAnchor; const onCommandActivateCursors = __webpack_require__(0).onCommandActivateCursors; const onCommandCleanAnchors = __webpack_require__(0).onCommandCleanAnchors; const onDidChangeTextDocument = __webpack_require__(0).onDidChangeTextDocument; -const camelCaseNav = __webpack_require__(3); module.exports = { - activate(context) { - - const config = vscode.workspace.getConfiguration('cursor-tools'); + activate(context) { - context.subscriptions.push(vscode.commands.registerTextEditorCommand('cursorToolsAnchorLeave', onCommandToggleAnchor), vscode.commands.registerTextEditorCommand('cursorToolsAnchorActivate', onCommandActivateCursors), vscode.commands.registerTextEditorCommand('cursorToolsAnchorClean', onCommandCleanAnchors)); - - if (config.subWordNavigation) { - const navigator = new camelCaseNav.CamelCaseNav(); - - context.subscriptions.push(vscode.commands.registerTextEditorCommand('cursorWordStartLeft', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_MOVE)), vscode.commands.registerTextEditorCommand('cursorWordEndRight', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_MOVE)), vscode.commands.registerTextEditorCommand('cursorWordStartLeftSelect', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_SELECT)), vscode.commands.registerTextEditorCommand('cursorWordEndRightSelect', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_SELECT)), vscode.commands.registerTextEditorCommand('deleteWordLeft', (editor, change) => navigator.doAction(editor, change, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_DELETE)), vscode.commands.registerTextEditorCommand('deleteWordRight', (editor, change) => navigator.doAction(editor, change, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_DELETE))); - } + context.subscriptions.push(vscode.commands.registerTextEditorCommand('cursorToolsAnchorAdd', onCommandToggleAnchor), vscode.commands.registerTextEditorCommand('cursorToolsAnchorActivate', onCommandActivateCursors), vscode.commands.registerTextEditorCommand('cursorToolsAnchorClean', onCommandCleanAnchors)); - vscode.window.onDidChangeActiveTextEditor(onTextEditorChange, null, context.subscriptions); - vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, context.subscriptions); + vscode.window.onDidChangeActiveTextEditor(onTextEditorChange, null, context.subscriptions); + vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, context.subscriptions); - if (vscode.window.activeTextEditor) { - onTextEditorChange(vscode.window.activeTextEditor); - } - }, - deactivate() {} + if (vscode.window.activeTextEditor) { + onTextEditorChange(vscode.window.activeTextEditor); + } + }, + deactivate() {} }; function onTextEditorChange(textEditor) { - if (textEditor) { - textEditor.cursorAnchors = textEditor.cursorAnchors || []; - } -} - -/***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vscode__ = __webpack_require__(1); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vscode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vscode__); - - -const DIRECTION_RIGHT = 1; -/* harmony export (immutable) */ __webpack_exports__["DIRECTION_RIGHT"] = DIRECTION_RIGHT; - -const DIRECTION_LEFT = -1; -/* harmony export (immutable) */ __webpack_exports__["DIRECTION_LEFT"] = DIRECTION_LEFT; - -const ACTION_MOVE = 1; -/* harmony export (immutable) */ __webpack_exports__["ACTION_MOVE"] = ACTION_MOVE; - -const ACTION_SELECT = 2; -/* harmony export (immutable) */ __webpack_exports__["ACTION_SELECT"] = ACTION_SELECT; - -const ACTION_DELETE = 3; -/* harmony export (immutable) */ __webpack_exports__["ACTION_DELETE"] = ACTION_DELETE; - - -const MODE_BOUNDARY = 1; -/* harmony export (immutable) */ __webpack_exports__["MODE_BOUNDARY"] = MODE_BOUNDARY; - -const MODE_SPAAAACE = 2; -/* harmony export (immutable) */ __webpack_exports__["MODE_SPAAAACE"] = MODE_SPAAAACE; - -const MODE_NEUTRAL = 3; -/* harmony export (immutable) */ __webpack_exports__["MODE_NEUTRAL"] = MODE_NEUTRAL; - -const MODE_LOWER = 4; -/* harmony export (immutable) */ __webpack_exports__["MODE_LOWER"] = MODE_LOWER; - -const MODE_UPPER = 5; -/* harmony export (immutable) */ __webpack_exports__["MODE_UPPER"] = MODE_UPPER; - - -class CamelCaseNav { - - constructor(config) { - this.config = config || { - stopAtNewLine: true, - stopSymbols: '\'"`\n', - boundarySymbols: '^`~!@#%^&*()-\\=+[]{}|;:",.<>/?]+_\'', - spaceAsBoundary: false - }; - } - - doAction(editor, edit, dir, action) { - if (!editor) { - return; - } - - const document = editor.document, - selections = editor.selections; - - const results = []; - - for (let i = 0, len = selections.length; i < len; i++) { - results.push(this.singleCursorAction(document, edit, selections[i], dir, action)); - } - - editor.selections = results; - - editor.revealRange(results[0].with(results[0].active, results[0].active)); - } - - singleCursorAction(document, edit, selection, dir, action) { - const nextPos = this.findNextPos(document, selection, selection.active, dir); - - if (nextPos.compareTo(selection.active) === 0) { - return selection; - } - if (action === ACTION_MOVE) { - return new __WEBPACK_IMPORTED_MODULE_0_vscode___default.a.Selection(nextPos, nextPos); - } - - if (action === ACTION_SELECT) { - return new __WEBPACK_IMPORTED_MODULE_0_vscode___default.a.Selection(selection.anchor, nextPos); - } - if (action === ACTION_DELETE) { - const deleteRange = new __WEBPACK_IMPORTED_MODULE_0_vscode___default.a.Selection(selection.anchor, nextPos); - - edit.delete(deleteRange); - - return selection; - } - } - - findNextPos(document, selection, pos, dir) { - const text = document.getText(); - - let cursor = document.offsetAt(pos); - let modCache = {}; - let steps = 0; - - while (true) { - const charOffset = dir === DIRECTION_LEFT ? cursor - 1 : cursor; - - if (charOffset >= text.length) { - return document.positionAt(text.length); - } - - if (charOffset < 0) { - return document.positionAt(0); - } - - const char = text[charOffset]; - const decision = this.makeDecision(text, charOffset, dir, steps, modCache); - - if (decision !== null) { - return document.positionAt(decision); - } - - steps++; - cursor = cursor + dir; - } - } - - modeForChar(ch) { - if (typeof ch === 'undefined' || ch === null) { - return 0; - } - - if (this.config.boundarySymbols.indexOf(ch) > -1) { - return MODE_BOUNDARY; - } - - if (/\s/.test(ch)) { - if (this.config.spaceAsBoundary) { - return MODE_BOUNDARY; - } else { - return MODE_SPAAAACE; - } - } - - const lower = ch.toLowerCase(); - - if (lower === ch.toUpperCase()) { - return MODE_NEUTRAL; - } - if (lower === ch) { - return MODE_LOWER; - } - return MODE_UPPER; - } - - modeFor(text, offset, cache) { - if (!cache[offset]) { - const ch = text[offset]; - - cache[offset] = this.modeForChar(text[offset]); - } - - return cache[offset]; - } - - makeDecision(text, offset, dir, steps, modCache) { - const inclusive = dir === DIRECTION_LEFT ? offset - 1 : offset + 2; - const exclusive = dir === DIRECTION_LEFT ? offset : offset + 1; - - const mode = this.modeFor(text, offset, modCache); - const nextMode = this.modeFor(text, offset + dir, modCache); - - // when going left, always stop at the new line, but only once - if (dir === DIRECTION_LEFT && text[inclusive] === '\n') { - const startSymbol = inclusive - dir * steps; - - if (text[startSymbol] !== '\n') { - return exclusive; - } - } - // if (this.config.stopSymbols.indexOf(ch) > -1) { - // if (prevMode === null) { - // return { mode: mode }; - // } - - // if (this.config.stopAtNewLine && ch === '\n') { - // return { stopAt: exclusive }; - // } - // } - - if (mode === nextMode) { - return null; + if (textEditor) { + textEditor.cursorAnchors = textEditor.cursorAnchors || []; } - - if (mode === MODE_SPAAAACE) { - // if (steps === 0 && text[exclusive] !== '\n') { - // return null; - // } - - if (text[offset] === '\n') { - return exclusive; - } - - const prevMode = this.modeFor(text, offset - dir, modCache); - - if (prevMode === MODE_SPAAAACE) { - return exclusive; - } - } else if (mode === MODE_BOUNDARY) { - if (steps === 0 && nextMode !== MODE_SPAAAACE) { - return null; - } - - return exclusive; - } else if (mode === MODE_LOWER) { - if (nextMode == MODE_UPPER) { - return dir === DIRECTION_LEFT ? inclusive : exclusive; - } - if (nextMode == MODE_SPAAAACE || nextMode == MODE_BOUNDARY || nextMode == MODE_NEUTRAL) { - return exclusive; - } - } else if (mode === MODE_UPPER) { - if (nextMode == MODE_SPAAAACE || nextMode == MODE_BOUNDARY || nextMode == MODE_NEUTRAL) { - return exclusive; - } - - if (dir === DIRECTION_LEFT && nextMode == MODE_LOWER) { - return exclusive; - } - } else if (mode === MODE_NEUTRAL) { - return exclusive; - } - - return null; - } - } -/* harmony export (immutable) */ __webpack_exports__["CamelCaseNav"] = CamelCaseNav; - /***/ }) /******/ ]); diff --git a/dist/extension.js.map b/dist/extension.js.map index 766ad8f..33af9b5 100644 --- a/dist/extension.js.map +++ b/dist/extension.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack/bootstrap 77ef547efc1311d3afac","/Users/egonyan/Projects/vscode-ext-cursor-tools/src/lib/anchor-commands.js","external \"vscode\"","/Users/egonyan/Projects/vscode-ext-cursor-tools/src/main.js","/Users/egonyan/Projects/vscode-ext-cursor-tools/src/lib/camel-case-nav.js"],"names":["vscode","require","decor","window","createTextEditorDecorationType","borderStyle","borderWidth","borderColor","light","module","exports","onCommandToggleAnchor","onCommandActivateCursors","onCommandCleanAnchors","onDidChangeTextDocument","textEditor","textEditorEdit","currentDocumentOffset","document","offsetAt","selection","active","index","isAnchorExist","cursorAnchors","push","splice","setContext","length","updateDecorations","selections","concat","map","createSelection","bind","textDocumentChangeEvent","activeTextEditor","textDocument","filters","contentChanges","contentChange","offsetStart","range","start","offsetEnd","end","offset","reduce","acc","fn","filter","rangeLength","text","decorRange","createRange","setDecorations","indexOf","position","positionAt","Selection","Range","value","commands","executeCommand","camelCaseNav","activate","context","config","workspace","getConfiguration","subscriptions","registerTextEditorCommand","subWordNavigation","navigator","CamelCaseNav","editor","doAction","DIRECTION_LEFT","ACTION_MOVE","DIRECTION_RIGHT","ACTION_SELECT","change","ACTION_DELETE","onDidChangeActiveTextEditor","onTextEditorChange","deactivate","MODE_BOUNDARY","MODE_SPAAAACE","MODE_NEUTRAL","MODE_LOWER","MODE_UPPER","constructor","stopAtNewLine","stopSymbols","boundarySymbols","spaceAsBoundary","edit","dir","action","results","i","len","singleCursorAction","revealRange","with","nextPos","findNextPos","compareTo","anchor","deleteRange","delete","pos","getText","cursor","modCache","steps","charOffset","char","decision","makeDecision","modeForChar","ch","test","lower","toLowerCase","toUpperCase","modeFor","cache","inclusive","exclusive","mode","nextMode","startSymbol","prevMode"],"mappings":"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","file":"dist/extension.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 77ef547efc1311d3afac","'use strict';\nconst vscode = require('vscode');\nconst decor = vscode.window.createTextEditorDecorationType({\n borderStyle: 'solid',\n borderWidth: '1px',\n borderColor: 'rgba(255, 255, 255, 0.3)',\n light: {\n borderColor: 'rgba(0, 0, 0, 0.3)',\n }\n});\n\nmodule.exports = {\n onCommandToggleAnchor,\n onCommandActivateCursors,\n onCommandCleanAnchors,\n onDidChangeTextDocument\n};\n\nfunction onCommandToggleAnchor(textEditor, textEditorEdit) {\n const currentDocumentOffset = textEditor.document.offsetAt(textEditor.selection.active);\n const index = isAnchorExist(textEditor, currentDocumentOffset);\n\n if (index === -1) {\n textEditor.cursorAnchors.push(currentDocumentOffset);\n } else {\n textEditor.cursorAnchors.splice(index, 1);\n }\n\n setContext(textEditor.cursorAnchors.length > 0);\n\n updateDecorations(textEditor);\n}\n\nfunction onCommandActivateCursors(textEditor, textEditorEdit) {\n const currentDocumentOffset = textEditor.document.offsetAt(textEditor.selection.active);\n\n textEditor.selections = [currentDocumentOffset]\n .concat(textEditor.cursorAnchors)\n .map(createSelection.bind(textEditor));\n\n onCommandCleanAnchors(textEditor, textEditorEdit);\n}\n\nfunction onCommandCleanAnchors(textEditor, textEditorEdit) {\n textEditor.cursorAnchors = [];\n\n setContext(false);\n\n updateDecorations(textEditor);\n}\n\nfunction onDidChangeTextDocument(textDocumentChangeEvent) {\n const textEditor = vscode.window.activeTextEditor;\n const textDocument = textDocumentChangeEvent.document;\n\n if (textEditor.document !== textDocument) {\n return;\n }\n\n const filters = textDocumentChangeEvent.contentChanges.map(contentChange => {\n const offsetStart = textDocument.offsetAt(contentChange.range.start);\n const offsetEnd = textDocument.offsetAt(contentChange.range.end);\n\n return (offset) => !(offset >= offsetStart && offset <= offsetEnd);\n });\n\n textEditor.cursorAnchors = filters\n .reduce((acc, fn) => acc.filter(fn), textEditor.cursorAnchors)\n .map(offset => {\n return textDocumentChangeEvent.contentChanges.reduce((acc, contentChange) => {\n if (textDocument.offsetAt(contentChange.range.start) <= offset) {\n return acc - contentChange.rangeLength + contentChange.text.length;\n }\n\n return acc;\n }, offset);\n });\n\n updateDecorations(textEditor);\n}\n\n\nfunction updateDecorations(textEditor) {\n const decorRange = textEditor.cursorAnchors\n .map(createRange.bind(textEditor));\n\n textEditor.setDecorations(decor, decorRange);\n}\n\n\nfunction isAnchorExist(textEditor, currentDocumentOffset) {\n return textEditor.cursorAnchors.indexOf(currentDocumentOffset);\n}\n\nfunction createSelection(offset) {\n const position = this.document.positionAt(offset);\n\n return new vscode.Selection(position, position);\n}\n\nfunction createRange(offset) {\n const position = this.document.positionAt(offset);\n\n return new vscode.Range(position, position);\n}\n\nfunction setContext(value) {\n vscode.commands.executeCommand('setContext', 'cursorToolsAnchors', value);\n}\n\n\n// WEBPACK FOOTER //\n// ./src/lib/anchor-commands.js","module.exports = require(\"vscode\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"vscode\"\n// module id = 1\n// module chunks = 0","'use strict';\n\nconst vscode = require('vscode');\nconst onCommandToggleAnchor = require('./lib/anchor-commands').onCommandToggleAnchor;\nconst onCommandActivateCursors = require('./lib/anchor-commands').onCommandActivateCursors;\nconst onCommandCleanAnchors = require('./lib/anchor-commands').onCommandCleanAnchors;\nconst onDidChangeTextDocument = require('./lib/anchor-commands').onDidChangeTextDocument;\nconst camelCaseNav = require('./lib/camel-case-nav');\n\nmodule.exports = {\n activate(context) {\n\n const config = vscode.workspace.getConfiguration('cursor-tools');\n\n context.subscriptions.push(\n vscode.commands.registerTextEditorCommand('cursorToolsAnchorLeave', onCommandToggleAnchor),\n vscode.commands.registerTextEditorCommand('cursorToolsAnchorActivate', onCommandActivateCursors),\n vscode.commands.registerTextEditorCommand('cursorToolsAnchorClean', onCommandCleanAnchors)\n );\n\n if (config.subWordNavigation) {\n const navigator = new camelCaseNav.CamelCaseNav();\n\n context.subscriptions.push(\n vscode.commands.registerTextEditorCommand('cursorWordStartLeft', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_MOVE)),\n vscode.commands.registerTextEditorCommand('cursorWordEndRight', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_MOVE)),\n vscode.commands.registerTextEditorCommand('cursorWordStartLeftSelect', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_SELECT)),\n vscode.commands.registerTextEditorCommand('cursorWordEndRightSelect', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_SELECT)),\n vscode.commands.registerTextEditorCommand('deleteWordLeft', (editor, change) => navigator.doAction(editor, change, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_DELETE)),\n vscode.commands.registerTextEditorCommand('deleteWordRight', (editor, change) => navigator.doAction(editor, change, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_DELETE)),\n );\n }\n\n vscode.window.onDidChangeActiveTextEditor(onTextEditorChange, null, context.subscriptions);\n vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, context.subscriptions);\n\n if (vscode.window.activeTextEditor) {\n onTextEditorChange(vscode.window.activeTextEditor);\n }\n },\n deactivate() { }\n};\n\nfunction onTextEditorChange(textEditor) {\n if (textEditor) {\n textEditor.cursorAnchors = textEditor.cursorAnchors || [];\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import vscode from 'vscode';\n\nexport const DIRECTION_RIGHT = 1;\nexport const DIRECTION_LEFT = -1;\nexport const ACTION_MOVE = 1;\nexport const ACTION_SELECT = 2;\nexport const ACTION_DELETE = 3;\n\nexport const MODE_BOUNDARY = 1;\nexport const MODE_SPAAAACE = 2;\nexport const MODE_NEUTRAL = 3;\nexport const MODE_LOWER = 4;\nexport const MODE_UPPER = 5;\n\nexport class CamelCaseNav {\n\n constructor(config) {\n this.config = config || {\n stopAtNewLine: true,\n stopSymbols: '\\'\"`\\n',\n boundarySymbols: '^`~!@#%^&*()-\\\\=+[]{}|;:\",.<>/?]+_\\'',\n spaceAsBoundary: false\n }\n }\n\n doAction(editor, edit, dir, action) {\n if (!editor) {\n return;\n }\n\n const { document, selections } = editor;\n const results = [];\n\n for (let i = 0, len = selections.length; i < len; i++) {\n results.push(this.singleCursorAction(document, edit, selections[i], dir, action))\n }\n\n editor.selections = results;\n\n editor.revealRange(results[0].with(results[0].active, results[0].active))\n }\n\n singleCursorAction(document, edit, selection, dir, action) {\n const nextPos = this.findNextPos(document, selection, selection.active, dir);\n\n if (nextPos.compareTo(selection.active) === 0) {\n return selection;\n }\n if (action === ACTION_MOVE) {\n return new vscode.Selection(nextPos, nextPos);\n }\n\n if (action === ACTION_SELECT) {\n return new vscode.Selection(selection.anchor, nextPos);\n }\n if (action === ACTION_DELETE) {\n const deleteRange = new vscode.Selection(selection.anchor, nextPos);\n\n edit.delete(deleteRange);\n\n return selection;\n }\n }\n\n\n findNextPos(document, selection, pos, dir) {\n const text = document.getText();\n\n let cursor = document.offsetAt(pos);\n let modCache = {};\n let steps = 0;\n\n\n while (true) {\n const charOffset = dir === DIRECTION_LEFT ? cursor - 1 : cursor;\n\n if (charOffset >= text.length) {\n return document.positionAt(text.length);\n }\n\n if (charOffset < 0) {\n return document.positionAt(0);\n }\n\n const char = text[charOffset];\n const decision = this.makeDecision(text, charOffset, dir, steps, modCache);\n\n if (decision !== null) {\n return document.positionAt(decision);\n }\n\n steps++;\n cursor = cursor + dir;\n }\n\n }\n\n modeForChar(ch) {\n if (typeof ch === 'undefined' || ch === null) {\n return 0;\n }\n\n if (this.config.boundarySymbols.indexOf(ch) > -1) {\n return MODE_BOUNDARY;\n }\n\n if (/\\s/.test(ch)) {\n if (this.config.spaceAsBoundary) {\n return MODE_BOUNDARY;\n } else {\n return MODE_SPAAAACE;\n }\n }\n\n const lower = ch.toLowerCase();\n\n if (lower === ch.toUpperCase()) {\n return MODE_NEUTRAL;\n }\n if (lower === ch) {\n return MODE_LOWER;\n }\n return MODE_UPPER;\n }\n\n modeFor(text, offset, cache) {\n if (!cache[offset]) {\n const ch = text[offset];\n\n cache[offset] = this.modeForChar(text[offset]);\n }\n\n return cache[offset];\n }\n\n makeDecision(text, offset, dir, steps, modCache) {\n const inclusive = dir === DIRECTION_LEFT ? offset - 1 : offset + 2;\n const exclusive = dir === DIRECTION_LEFT ? offset : offset + 1;\n\n const mode = this.modeFor(text, offset, modCache);\n const nextMode = this.modeFor(text, offset + dir, modCache);\n\n // when going left, always stop at the new line, but only once\n if (dir === DIRECTION_LEFT && text[inclusive] === '\\n') {\n const startSymbol = inclusive - (dir * steps);\n\n if (text[startSymbol] !== '\\n') {\n return exclusive;\n }\n }\n // if (this.config.stopSymbols.indexOf(ch) > -1) {\n // if (prevMode === null) {\n // return { mode: mode };\n // }\n\n // if (this.config.stopAtNewLine && ch === '\\n') {\n // return { stopAt: exclusive };\n // }\n // }\n\n if (mode === nextMode) {\n return null;\n }\n\n if (mode === MODE_SPAAAACE) {\n // if (steps === 0 && text[exclusive] !== '\\n') {\n // return null;\n // }\n\n if (text[offset] === '\\n') {\n return exclusive;\n }\n\n\n const prevMode = this.modeFor(text, offset - dir, modCache);\n\n if (prevMode === MODE_SPAAAACE) {\n return exclusive;\n }\n } else if (mode === MODE_BOUNDARY) {\n if (steps === 0 && nextMode !== MODE_SPAAAACE) {\n return null;\n }\n\n return exclusive;\n } else if (mode === MODE_LOWER) {\n if (nextMode == MODE_UPPER) {\n return dir === DIRECTION_LEFT ? inclusive : exclusive;\n }\n if (nextMode == MODE_SPAAAACE || nextMode == MODE_BOUNDARY || nextMode == MODE_NEUTRAL) {\n return exclusive;\n }\n } else if (mode === MODE_UPPER) {\n if (nextMode == MODE_SPAAAACE || nextMode == MODE_BOUNDARY || nextMode == MODE_NEUTRAL) {\n return exclusive;\n }\n\n if (dir === DIRECTION_LEFT && nextMode == MODE_LOWER) {\n return exclusive;\n }\n } else if (mode === MODE_NEUTRAL) {\n return exclusive;\n\n }\n\n return null;\n }\n\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/camel-case-nav.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack/bootstrap 4457e4a8650e8684c1de","/Users/koka/Public/GitHub/vscode-ext-cursor-tools/src/lib/anchor-commands.js","external \"vscode\"","/Users/koka/Public/GitHub/vscode-ext-cursor-tools/src/main.js"],"names":["vscode","require","config","workspace","getConfiguration","decor","window","createTextEditorDecorationType","borderStyle","border","style","borderWidth","width","borderColor","color","ThemeColor","module","exports","onCommandToggleAnchor","onCommandActivateCursors","onCommandCleanAnchors","onDidChangeTextDocument","textEditor","document","selections","cursorAnchors","selection","currentDocumentOffset","offsetAt","active","index","isAnchorExist","push","splice","setContext","length","updateDecorations","textEditorEdit","includeCurrentCursorOnActivate","concat","map","createSelection","bind","textDocumentChangeEvent","activeTextEditor","textDocument","filters","contentChanges","contentChange","offsetStart","range","start","offsetEnd","end","offset","reduce","acc","fn","filter","rangeLength","text","decorRange","createRange","setDecorations","indexOf","position","positionAt","Selection","Range","value","commands","executeCommand","activate","context","subscriptions","registerTextEditorCommand","onDidChangeActiveTextEditor","onTextEditorChange","deactivate"],"mappings":"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","file":"dist/extension.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4457e4a8650e8684c1de","'use strict'\n\nconst vscode = require('vscode')\nconst config = vscode.workspace.getConfiguration('cursor-tools')\nconst decor = vscode.window.createTextEditorDecorationType({\n borderStyle: config.border.style,\n borderWidth: config.border.width,\n borderColor: config.border.color || new vscode.ThemeColor(\"editorCursor.foreground\")\n})\n\nmodule.exports = {\n onCommandToggleAnchor,\n onCommandActivateCursors,\n onCommandCleanAnchors,\n onDidChangeTextDocument\n}\n\nfunction onCommandToggleAnchor(textEditor) {\n let { document, selections, cursorAnchors } = textEditor\n\n for (const selection of selections) {\n const currentDocumentOffset = document.offsetAt(selection.active)\n const index = isAnchorExist(textEditor, currentDocumentOffset)\n\n index < 0\n ? cursorAnchors.push(currentDocumentOffset)\n : cursorAnchors.splice(index, 1)\n }\n\n setContext(cursorAnchors.length > 0)\n updateDecorations(textEditor)\n}\n\nfunction onCommandActivateCursors(textEditor, textEditorEdit) {\n let currentDocumentOffset = []\n\n if (config.includeCurrentCursorOnActivate) {\n currentDocumentOffset = [textEditor.document.offsetAt(textEditor.selection.active)]\n }\n\n textEditor.selections = currentDocumentOffset\n .concat(textEditor.cursorAnchors)\n .map(createSelection.bind(textEditor))\n\n onCommandCleanAnchors(textEditor, textEditorEdit)\n}\n\nfunction onCommandCleanAnchors(textEditor) {\n textEditor.cursorAnchors = []\n\n setContext(false)\n\n updateDecorations(textEditor)\n}\n\nfunction onDidChangeTextDocument(textDocumentChangeEvent) {\n if (!textDocumentChangeEvent) {\n return\n }\n\n const textEditor = vscode.window.activeTextEditor\n\n if (!textEditor) {\n return\n }\n\n const textDocument = textDocumentChangeEvent.document\n\n if (textEditor.document !== textDocument) {\n return\n }\n\n const filters = textDocumentChangeEvent.contentChanges.map((contentChange) => {\n const offsetStart = textDocument.offsetAt(contentChange.range.start)\n const offsetEnd = textDocument.offsetAt(contentChange.range.end)\n\n return (offset) => !(offset >= offsetStart && offset <= offsetEnd)\n })\n\n textEditor.cursorAnchors = filters\n .reduce((acc, fn) => acc.filter(fn), textEditor.cursorAnchors)\n .map((offset) => {\n return textDocumentChangeEvent.contentChanges.reduce((acc, contentChange) => {\n if (textDocument.offsetAt(contentChange.range.start) <= offset) {\n return acc - contentChange.rangeLength + contentChange.text.length\n }\n\n return acc\n }, offset)\n })\n\n updateDecorations(textEditor)\n}\n\nfunction updateDecorations(textEditor) {\n const decorRange = textEditor.cursorAnchors\n .map(createRange.bind(textEditor))\n\n textEditor.setDecorations(decor, decorRange)\n}\n\nfunction isAnchorExist(textEditor, currentDocumentOffset) {\n return textEditor.cursorAnchors.indexOf(currentDocumentOffset)\n}\n\nfunction createSelection(offset) {\n const position = this.document.positionAt(offset)\n\n return new vscode.Selection(position, position)\n}\n\nfunction createRange(offset) {\n const position = this.document.positionAt(offset)\n\n return new vscode.Range(position, position)\n}\n\nfunction setContext(value) {\n vscode.commands.executeCommand('setContext', 'cursorToolsAnchors', value)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/anchor-commands.js","module.exports = require(\"vscode\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"vscode\"\n// module id = 1\n// module chunks = 0","'use strict'\n\nconst vscode = require('vscode')\nconst onCommandToggleAnchor = require('./lib/anchor-commands').onCommandToggleAnchor\nconst onCommandActivateCursors = require('./lib/anchor-commands').onCommandActivateCursors\nconst onCommandCleanAnchors = require('./lib/anchor-commands').onCommandCleanAnchors\nconst onDidChangeTextDocument = require('./lib/anchor-commands').onDidChangeTextDocument\n\nmodule.exports = {\n activate(context) {\n\n context.subscriptions.push(\n vscode.commands.registerTextEditorCommand('cursorToolsAnchorAdd', onCommandToggleAnchor),\n vscode.commands.registerTextEditorCommand('cursorToolsAnchorActivate', onCommandActivateCursors),\n vscode.commands.registerTextEditorCommand('cursorToolsAnchorClean', onCommandCleanAnchors)\n )\n\n vscode.window.onDidChangeActiveTextEditor(onTextEditorChange, null, context.subscriptions)\n vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, context.subscriptions)\n\n if (vscode.window.activeTextEditor) {\n onTextEditorChange(vscode.window.activeTextEditor)\n }\n },\n deactivate() { }\n}\n\nfunction onTextEditorChange(textEditor) {\n if (textEditor) {\n textEditor.cursorAnchors = textEditor.cursorAnchors || []\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""} \ No newline at end of file diff --git a/images/preview.gif b/images/preview.gif deleted file mode 100644 index 425870b..0000000 Binary files a/images/preview.gif and /dev/null differ diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 8387efa..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3904 +0,0 @@ -{ - "name": "cursor-tools", - "version": "1.0.0", - "lockfileVersion": 1, - "dependencies": { - "acorn": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", - "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true - }, - "ajv-keywords": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", - "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=" - }, - "babel-core": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=" - }, - "babel-generator": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", - "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=" - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=" - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=" - }, - "babel-helper-define-map": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=" - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=" - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=" - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=" - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=" - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=" - }, - "babel-helper-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=" - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=" - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=" - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=" - }, - "babel-loader": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.1.tgz", - "integrity": "sha1-uHE0yLEuPkwqlOBUYIW8aAorhIg=" - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=" - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=" - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=" - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=" - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=" - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=" - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=" - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=" - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=" - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=" - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=" - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=" - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=" - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=" - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=" - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=" - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=" - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=" - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=" - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=" - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=" - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=" - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=" - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=" - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=" - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=" - }, - "babel-plugin-transform-regenerator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", - "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=" - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=" - }, - "babel-polyfill": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", - "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=" - }, - "babel-preset-env": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz", - "integrity": "sha512-OVgtQRuOZKckrILgMA5rvctvFZPv72Gua9Rt006AiPoB0DJKGN07UmaQA+qRrYgK71MVct8fFhT0EyNWYorVew==" - }, - "babel-register": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=" - }, - "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=" - }, - "babel-template": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=" - }, - "babel-traverse": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=" - }, - "babel-types": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=" - }, - "babylon": { - "version": "6.17.4", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "big.js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=" - }, - "binary-extensions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true - }, - "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true - }, - "browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true - }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true - }, - "browserslist": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.1.5.tgz", - "integrity": "sha1-6IJVDfPRzW1IHBo+ADjyuvE6RxE=" - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000701", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000701.tgz", - "integrity": "sha1-nWc89rdNyz1cIdITF2sBGsakW6o=" - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true - }, - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "cloneable-readable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", - "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "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 - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true - }, - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" - }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" - }, - "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 - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true - }, - "crypto-browserify": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", - "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", - "dev": true - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", - "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", - "dev": true - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-assign": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz", - "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=" - }, - "diff": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true - }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true - }, - "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 - } - } - }, - "duplexify": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", - "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true - }, - "electron-to-chromium": { - "version": "1.3.15", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz", - "integrity": "sha1-CDl5NIkcvPrrvRi4KpW1pIETg2k=" - }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "end-of-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", - "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", - "dev": true, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true - } - } - }, - "enhanced-resolve": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz", - "integrity": "sha512-2qbxE7ek3YxPJ1ML6V+satHkzHpJQKWkRHmRx6mfAoW59yP8YH8BFplbegSP+u2hBd6B6KCOpvJQ3dZAP+hkpg==", - "dev": true, - "dependencies": { - "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 - } - } - }, - "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true - }, - "es5-ext": { - "version": "0.10.24", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz", - "integrity": "sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ=", - "dev": true - }, - "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "dev": true - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true - }, - "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=" - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true - }, - "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, - "dependencies": { - "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 - } - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true - }, - "fancy-log": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=" - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" - }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", - "dev": true, - "optional": true, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "bundled": true, - "dev": true, - "optional": true - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true - }, - "glob-stream": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", - "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", - "dev": true, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - } - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "growl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", - "dev": true - }, - "gulp-chmod": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-chmod/-/gulp-chmod-2.0.0.tgz", - "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=", - "dev": true - }, - "gulp-filter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.0.0.tgz", - "integrity": "sha1-z6gZZvtniE8rp1SwZxUpKUKNWbw=", - "dev": true - }, - "gulp-gunzip": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/gulp-gunzip/-/gulp-gunzip-0.0.3.tgz", - "integrity": "sha1-e24HsPWP09QlFcSOrVpj3wVy9i8=", - "dev": true, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true - } - } - }, - "gulp-remote-src": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/gulp-remote-src/-/gulp-remote-src-0.4.2.tgz", - "integrity": "sha1-zrN3DjREMo1hOG+6qrIAvBHNmKg=", - "dev": true, - "dependencies": { - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "dev": true - }, - "vinyl": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.0.2.tgz", - "integrity": "sha1-CjcT2NTpIhxY8QyhbAEWyeJe2nw=", - "dev": true - } - } - }, - "gulp-sourcemaps": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", - "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", - "dev": true, - "dependencies": { - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true - } - } - }, - "gulp-symdest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/gulp-symdest/-/gulp-symdest-1.1.0.tgz", - "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=", - "dev": true - }, - "gulp-untar": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/gulp-untar/-/gulp-untar-0.0.6.tgz", - "integrity": "sha1-1r3v3n6ajgVMnxYjhaB4LEvnQAA=", - "dev": true - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "gulp-vinyl-zip": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-1.4.0.tgz", - "integrity": "sha1-VjgvLMtXIxuwR4x4c3zNVylzvuE=", - "dev": true, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=" - }, - "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true - }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "interpret": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true - }, - "is-my-json-valid": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", - "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true - }, - "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 - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-loader": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=" - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basecreate": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", - "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.create": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", - "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" - }, - "make-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", - "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=" - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true - } - } - }, - "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" - }, - "mocha": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz", - "integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=", - "dev": true, - "dependencies": { - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true - }, - "debug": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", - "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=", - "dev": true - }, - "glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", - "dev": true - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - }, - "supports-color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true - }, - "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "dev": true, - "optional": true - }, - "node-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", - "dev": true, - "dependencies": { - "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 - } - } - }, - "node.extend": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz", - "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", - "dev": true - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true - }, - "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=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true - }, - "ordered-read-streams": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", - "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", - "dev": true - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true - }, - "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=" - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "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=" - }, - "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 - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "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 - }, - "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 - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "private": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", - "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", - "dev": true - }, - "queue": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/queue/-/queue-3.1.0.tgz", - "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true - }, - "regenerate": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=" - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - }, - "regenerator-transform": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", - "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=" - }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=" - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remove-trailing-separator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "dependencies": { - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true - }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - }, - "source-map-support": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=" - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true - }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true - }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true - }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", - "dev": true - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "streamfilter": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.5.tgz", - "integrity": "sha1-h1BxEb644phFFxe1Ec/tjwAqv1M=", - "dev": true - }, - "streamifier": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz", - "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true - }, - "strip-bom-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", - "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "tapable": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", - "integrity": "sha1-IGvo4YiGC1FEJTdebxrom/sB/Y0=", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true - }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "dev": true - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", - "dev": true - }, - "to-absolute-glob": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", - "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true - }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", - "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "dev": true - }, - "vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true - }, - "vinyl-fs": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", - "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", - "dev": true, - "dependencies": { - "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 - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true - } - } - }, - "vinyl-source-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz", - "integrity": "sha1-RMvlEIIFJ53rDFZTwJSiiHk4sas=", - "dev": true, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true - }, - "vscode": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.4.tgz", - "integrity": "sha1-Hx1NZi1VyaKLxGeqy2MikfcKaG0=", - "dev": true - }, - "watchpack": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", - "integrity": "sha1-fYaTkHsozmAT5/NhCqKhrPB9rYc=", - "dev": true - }, - "webpack": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.2.0.tgz", - "integrity": "sha512-eqCVdO0QMlkhwKr6CmIt0va3XbDhcoeC3SjVhMjJWIL3Rh/nEDC3L49osJxtSw0FelbEs7IXbftWYw2DKGS0cw==", - "dev": true, - "dependencies": { - "ajv": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", - "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true - } - } - }, - "webpack-sources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", - "dev": true - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, - "yauzl": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", - "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", - "dev": true - }, - "yazl": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.4.2.tgz", - "integrity": "sha1-FMsZCD4eJacAksFYiqvg9OTdTYg=", - "dev": true - } - } -} diff --git a/package.json b/package.json index 0b10b1c..b3b215d 100644 --- a/package.json +++ b/package.json @@ -1,87 +1,104 @@ { - "name": "cursor-tools", - "displayName": "Cursor tools", - "description": "Leave anchors in the document and create multiple cursors out of them!", - "version": "2.0.1", - "publisher": "naumovs", - "engines": { - "vscode": "^1.1.0" - }, - "categories": [ - "Other" - ], - "activationEvents": [ - "*" - ], - "scripts": { - "postinstall": "node ./node_modules/vscode/bin/install", - "vscode:prepublish": "node ./node_modules/webpack/bin/webpack.js", - "dev": "node ./node_modules/webpack/bin/webpack.js -w" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/naumovs/vscode-ext-cursor-tools/issues" - }, - "homepage": "https://github.com/naumovs/vscode-ext-cursor-tools", - "repository": { - "type": "git", - "url": "https://github.com/naumovs/vscode-ext-cursor-tools.git" - }, - "main": "./dist/extension", - "icon": "images/cursor-tools.png", - "contributes": { - "configuration": { - "title": "Cursor tools", - "properties": { - "cursor-tools.subWordNavigation": { - "type": "boolean", - "default": false, - "description": "Enable camelCase navigation with following commands: (cursorWordStartLeft,cursorWordEndRight,cursorWordStartLeftSelect,cursorWordEndRightSelect,deleteWordLeft,deleteWordRight) " - } - } + "name": "cursor-tools", + "displayName": "Cursor tools", + "description": "Leave anchors in the document and create multiple cursors out of them!", + "version": "0.0.1", + "publisher": "ctf0", + "engines": { + "vscode": "^1.1.0" }, - "commands": [ - { - "command": "cursorToolsAnchorLeave", - "title": "Cursor tools: Toggle anchor at cursor position" - }, - { - "command": "cursorToolsAnchorActivate", - "title": "Cursor tools: Activate cursors at all anchor positions" - }, - { - "command": "cursorToolsAnchorClean", - "title": "Cursor tools: Clean all anchors in current document" - } + "categories": [ + "Other" ], - "keybindings": [ - { - "command": "cursorToolsAnchorLeave", - "key": "ctrl+alt+down", - "win": "ctrl+win+down", - "when": "editorTextFocus" - }, - { - "command": "cursorToolsAnchorActivate", - "key": "ctrl+alt+up", - "win": "ctrl+win+up", - "when": "editorTextFocus" - }, - { - "command": "cursorToolsAnchorClean", - "key": "escape", - "when": "editorTextFocus && cursorToolsAnchors" - } - ] - }, - "devDependencies": { - "vscode": "^1.1.0", - "webpack": "3.2.0" - }, - "dependencies": { - "babel-core": "^6.25.0", - "babel-loader": "^7.1.1", - "babel-polyfill": "^6.23.0", - "babel-preset-env": "^1.6.0" - } + "activationEvents": [ + "*" + ], + "license": "MIT", + "repository": "https://github.com/ctf0/vscode-ext-cursor-tools", + "main": "./dist/extension", + "icon": "images/cursor-tools.png", + "contributes": { + "configuration": { + "title": "Cursor tools", + "type": "object", + "properties": { + "cursor-tools.border": { + "type": "object", + "default": { + "style": "solid", + "width": "1px", + "color": "" + }, + "description": "cursor style" + }, + "cursor-tools.includeCurrentCursorOnActivate": { + "type": "boolean", + "default": false, + "description": "include the current cursor when activating the saved anchors" + } + } + }, + "commands": [ + { + "command": "cursorToolsAnchorAdd", + "title": "Cursor tools: Toggle anchor at cursor position" + }, + { + "command": "cursorToolsAnchorActivate", + "title": "Cursor tools: Activate cursors at all anchor positions" + }, + { + "command": "cursorToolsAnchorClean", + "title": "Cursor tools: Clean all anchors in current document" + } + ], + "menus": { + "commandPalette": [ + { + "command": "cursorToolsAnchorAdd", + "when": "editorIsOpen" + }, + { + "command": "cursorToolsAnchorActivate", + "when": "editorIsOpen" + }, + { + "command": "cursorToolsAnchorClean", + "when": "editorIsOpen" + } + ] + }, + "keybindings": [ + { + "command": "cursorToolsAnchorAdd", + "key": "ctrl+alt+down", + "win": "ctrl+win+down", + "when": "editorTextFocus" + }, + { + "command": "cursorToolsAnchorActivate", + "key": "ctrl+alt+up", + "win": "ctrl+win+up", + "when": "editorTextFocus" + }, + { + "command": "cursorToolsAnchorClean", + "key": "shift+escape", + "when": "editorTextFocus && cursorToolsAnchors" + } + ] + }, + "scripts": { + "postinstall": "node ./node_modules/vscode/bin/install", + "vscode:prepublish": "node ./node_modules/webpack/bin/webpack.js", + "dev": "node ./node_modules/webpack/bin/webpack.js -w" + }, + "devDependencies": { + "vscode": "^1.1.0", + "webpack": "3.2.0", + "babel-core": "^6.25.0", + "babel-loader": "^7.1.1", + "babel-polyfill": "^6.23.0", + "babel-preset-env": "^1.6.0" + } } diff --git a/src/lib/anchor-commands.js b/src/lib/anchor-commands.js index 2412bf6..efe05b8 100644 --- a/src/lib/anchor-commands.js +++ b/src/lib/anchor-commands.js @@ -1,109 +1,120 @@ -'use strict'; -const vscode = require('vscode'); +'use strict' + +const vscode = require('vscode') +const config = vscode.workspace.getConfiguration('cursor-tools') const decor = vscode.window.createTextEditorDecorationType({ - borderStyle: 'solid', - borderWidth: '1px', - borderColor: 'rgba(255, 255, 255, 0.3)', - light: { - borderColor: 'rgba(0, 0, 0, 0.3)', - } -}); + borderStyle: config.border.style, + borderWidth: config.border.width, + borderColor: config.border.color || new vscode.ThemeColor("editorCursor.foreground") +}) module.exports = { - onCommandToggleAnchor, - onCommandActivateCursors, - onCommandCleanAnchors, - onDidChangeTextDocument -}; + onCommandToggleAnchor, + onCommandActivateCursors, + onCommandCleanAnchors, + onDidChangeTextDocument +} -function onCommandToggleAnchor(textEditor, textEditorEdit) { - const currentDocumentOffset = textEditor.document.offsetAt(textEditor.selection.active); - const index = isAnchorExist(textEditor, currentDocumentOffset); +function onCommandToggleAnchor(textEditor) { + let { document, selections, cursorAnchors } = textEditor - if (index === -1) { - textEditor.cursorAnchors.push(currentDocumentOffset); - } else { - textEditor.cursorAnchors.splice(index, 1); - } + for (const selection of selections) { + const currentDocumentOffset = document.offsetAt(selection.active) + const index = isAnchorExist(textEditor, currentDocumentOffset) - setContext(textEditor.cursorAnchors.length > 0); + index < 0 + ? cursorAnchors.push(currentDocumentOffset) + : cursorAnchors.splice(index, 1) + } - updateDecorations(textEditor); + setContext(cursorAnchors.length > 0) + updateDecorations(textEditor) } function onCommandActivateCursors(textEditor, textEditorEdit) { - const currentDocumentOffset = textEditor.document.offsetAt(textEditor.selection.active); + let currentDocumentOffset = [] + + if (config.includeCurrentCursorOnActivate) { + currentDocumentOffset = [textEditor.document.offsetAt(textEditor.selection.active)] + } - textEditor.selections = [currentDocumentOffset] - .concat(textEditor.cursorAnchors) - .map(createSelection.bind(textEditor)); + textEditor.selections = currentDocumentOffset + .concat(textEditor.cursorAnchors) + .map(createSelection.bind(textEditor)) - onCommandCleanAnchors(textEditor, textEditorEdit); + onCommandCleanAnchors(textEditor, textEditorEdit) } -function onCommandCleanAnchors(textEditor, textEditorEdit) { - textEditor.cursorAnchors = []; +function onCommandCleanAnchors(textEditor) { + textEditor.cursorAnchors = [] - setContext(false); + setContext(false) - updateDecorations(textEditor); + updateDecorations(textEditor) } function onDidChangeTextDocument(textDocumentChangeEvent) { - const textEditor = vscode.window.activeTextEditor; - const textDocument = textDocumentChangeEvent.document; + if (!textDocumentChangeEvent) { + return + } - if (textEditor.document !== textDocument) { - return; - } + const textEditor = vscode.window.activeTextEditor - const filters = textDocumentChangeEvent.contentChanges.map(contentChange => { - const offsetStart = textDocument.offsetAt(contentChange.range.start); - const offsetEnd = textDocument.offsetAt(contentChange.range.end); + if (!textEditor) { + return + } - return (offset) => !(offset >= offsetStart && offset <= offsetEnd); - }); + const textDocument = textDocumentChangeEvent.document - textEditor.cursorAnchors = filters - .reduce((acc, fn) => acc.filter(fn), textEditor.cursorAnchors) - .map(offset => { - return textDocumentChangeEvent.contentChanges.reduce((acc, contentChange) => { - if (textDocument.offsetAt(contentChange.range.start) <= offset) { - return acc - contentChange.rangeLength + contentChange.text.length; - } + if (textEditor.document !== textDocument) { + return + } - return acc; - }, offset); - }); + const filters = textDocumentChangeEvent.contentChanges.map((contentChange) => { + const offsetStart = textDocument.offsetAt(contentChange.range.start) + const offsetEnd = textDocument.offsetAt(contentChange.range.end) - updateDecorations(textEditor); -} + return (offset) => !(offset >= offsetStart && offset <= offsetEnd) + }) + textEditor.cursorAnchors = filters + .reduce((acc, fn) => acc.filter(fn), textEditor.cursorAnchors) + .map((offset) => { + return textDocumentChangeEvent.contentChanges.reduce((acc, contentChange) => { + if (textDocument.offsetAt(contentChange.range.start) <= offset) { + return acc - contentChange.rangeLength + contentChange.text.length + } -function updateDecorations(textEditor) { - const decorRange = textEditor.cursorAnchors - .map(createRange.bind(textEditor)); + return acc + }, offset) + }) - textEditor.setDecorations(decor, decorRange); + updateDecorations(textEditor) } +function updateDecorations(textEditor) { + const decorRange = textEditor.cursorAnchors + .map(createRange.bind(textEditor)) + + textEditor.setDecorations(decor, decorRange) +} function isAnchorExist(textEditor, currentDocumentOffset) { - return textEditor.cursorAnchors.indexOf(currentDocumentOffset); + return textEditor.cursorAnchors.indexOf(currentDocumentOffset) } function createSelection(offset) { - const position = this.document.positionAt(offset); + const position = this.document.positionAt(offset) - return new vscode.Selection(position, position); + return new vscode.Selection(position, position) } function createRange(offset) { - const position = this.document.positionAt(offset); + const position = this.document.positionAt(offset) - return new vscode.Range(position, position); + return new vscode.Range(position, position) } function setContext(value) { - vscode.commands.executeCommand('setContext', 'cursorToolsAnchors', value); -} \ No newline at end of file + vscode.commands.executeCommand('setContext', 'cursorToolsAnchors', value) +} diff --git a/src/lib/camel-case-nav.js b/src/lib/camel-case-nav.js deleted file mode 100644 index 8733d65..0000000 --- a/src/lib/camel-case-nav.js +++ /dev/null @@ -1,210 +0,0 @@ -import vscode from 'vscode'; - -export const DIRECTION_RIGHT = 1; -export const DIRECTION_LEFT = -1; -export const ACTION_MOVE = 1; -export const ACTION_SELECT = 2; -export const ACTION_DELETE = 3; - -export const MODE_BOUNDARY = 1; -export const MODE_SPAAAACE = 2; -export const MODE_NEUTRAL = 3; -export const MODE_LOWER = 4; -export const MODE_UPPER = 5; - -export class CamelCaseNav { - - constructor(config) { - this.config = config || { - stopAtNewLine: true, - stopSymbols: '\'"`\n', - boundarySymbols: '^`~!@#%^&*()-\\=+[]{}|;:",.<>/?]+_\'', - spaceAsBoundary: false - } - } - - doAction(editor, edit, dir, action) { - if (!editor) { - return; - } - - const { document, selections } = editor; - const results = []; - - for (let i = 0, len = selections.length; i < len; i++) { - results.push(this.singleCursorAction(document, edit, selections[i], dir, action)) - } - - editor.selections = results; - - editor.revealRange(results[0].with(results[0].active, results[0].active)) - } - - singleCursorAction(document, edit, selection, dir, action) { - const nextPos = this.findNextPos(document, selection, selection.active, dir); - - if (nextPos.compareTo(selection.active) === 0) { - return selection; - } - if (action === ACTION_MOVE) { - return new vscode.Selection(nextPos, nextPos); - } - - if (action === ACTION_SELECT) { - return new vscode.Selection(selection.anchor, nextPos); - } - if (action === ACTION_DELETE) { - const deleteRange = new vscode.Selection(selection.anchor, nextPos); - - edit.delete(deleteRange); - - return selection; - } - } - - - findNextPos(document, selection, pos, dir) { - const text = document.getText(); - - let cursor = document.offsetAt(pos); - let modCache = {}; - let steps = 0; - - - while (true) { - const charOffset = dir === DIRECTION_LEFT ? cursor - 1 : cursor; - - if (charOffset >= text.length) { - return document.positionAt(text.length); - } - - if (charOffset < 0) { - return document.positionAt(0); - } - - const char = text[charOffset]; - const decision = this.makeDecision(text, charOffset, dir, steps, modCache); - - if (decision !== null) { - return document.positionAt(decision); - } - - steps++; - cursor = cursor + dir; - } - - } - - modeForChar(ch) { - if (typeof ch === 'undefined' || ch === null) { - return 0; - } - - if (this.config.boundarySymbols.indexOf(ch) > -1) { - return MODE_BOUNDARY; - } - - if (/\s/.test(ch)) { - if (this.config.spaceAsBoundary) { - return MODE_BOUNDARY; - } else { - return MODE_SPAAAACE; - } - } - - const lower = ch.toLowerCase(); - - if (lower === ch.toUpperCase()) { - return MODE_NEUTRAL; - } - if (lower === ch) { - return MODE_LOWER; - } - return MODE_UPPER; - } - - modeFor(text, offset, cache) { - if (!cache[offset]) { - const ch = text[offset]; - - cache[offset] = this.modeForChar(text[offset]); - } - - return cache[offset]; - } - - makeDecision(text, offset, dir, steps, modCache) { - const inclusive = dir === DIRECTION_LEFT ? offset - 1 : offset + 2; - const exclusive = dir === DIRECTION_LEFT ? offset : offset + 1; - - const mode = this.modeFor(text, offset, modCache); - const nextMode = this.modeFor(text, offset + dir, modCache); - - // when going left, always stop at the new line, but only once - if (dir === DIRECTION_LEFT && text[inclusive] === '\n') { - const startSymbol = inclusive - (dir * steps); - - if (text[startSymbol] !== '\n') { - return exclusive; - } - } - // if (this.config.stopSymbols.indexOf(ch) > -1) { - // if (prevMode === null) { - // return { mode: mode }; - // } - - // if (this.config.stopAtNewLine && ch === '\n') { - // return { stopAt: exclusive }; - // } - // } - - if (mode === nextMode) { - return null; - } - - if (mode === MODE_SPAAAACE) { - // if (steps === 0 && text[exclusive] !== '\n') { - // return null; - // } - - if (text[offset] === '\n') { - return exclusive; - } - - - const prevMode = this.modeFor(text, offset - dir, modCache); - - if (prevMode === MODE_SPAAAACE) { - return exclusive; - } - } else if (mode === MODE_BOUNDARY) { - if (steps === 0 && nextMode !== MODE_SPAAAACE) { - return null; - } - - return exclusive; - } else if (mode === MODE_LOWER) { - if (nextMode == MODE_UPPER) { - return dir === DIRECTION_LEFT ? inclusive : exclusive; - } - if (nextMode == MODE_SPAAAACE || nextMode == MODE_BOUNDARY || nextMode == MODE_NEUTRAL) { - return exclusive; - } - } else if (mode === MODE_UPPER) { - if (nextMode == MODE_SPAAAACE || nextMode == MODE_BOUNDARY || nextMode == MODE_NEUTRAL) { - return exclusive; - } - - if (dir === DIRECTION_LEFT && nextMode == MODE_LOWER) { - return exclusive; - } - } else if (mode === MODE_NEUTRAL) { - return exclusive; - - } - - return null; - } - -} - diff --git a/src/main.js b/src/main.js index 64e8629..3ccb5c5 100644 --- a/src/main.js +++ b/src/main.js @@ -1,49 +1,32 @@ -'use strict'; +'use strict' -const vscode = require('vscode'); -const onCommandToggleAnchor = require('./lib/anchor-commands').onCommandToggleAnchor; -const onCommandActivateCursors = require('./lib/anchor-commands').onCommandActivateCursors; -const onCommandCleanAnchors = require('./lib/anchor-commands').onCommandCleanAnchors; -const onDidChangeTextDocument = require('./lib/anchor-commands').onDidChangeTextDocument; -const camelCaseNav = require('./lib/camel-case-nav'); +const vscode = require('vscode') +const onCommandToggleAnchor = require('./lib/anchor-commands').onCommandToggleAnchor +const onCommandActivateCursors = require('./lib/anchor-commands').onCommandActivateCursors +const onCommandCleanAnchors = require('./lib/anchor-commands').onCommandCleanAnchors +const onDidChangeTextDocument = require('./lib/anchor-commands').onDidChangeTextDocument module.exports = { - activate(context) { - - const config = vscode.workspace.getConfiguration('cursor-tools'); - - context.subscriptions.push( - vscode.commands.registerTextEditorCommand('cursorToolsAnchorLeave', onCommandToggleAnchor), - vscode.commands.registerTextEditorCommand('cursorToolsAnchorActivate', onCommandActivateCursors), - vscode.commands.registerTextEditorCommand('cursorToolsAnchorClean', onCommandCleanAnchors) - ); - - if (config.subWordNavigation) { - const navigator = new camelCaseNav.CamelCaseNav(); - - context.subscriptions.push( - vscode.commands.registerTextEditorCommand('cursorWordStartLeft', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_MOVE)), - vscode.commands.registerTextEditorCommand('cursorWordEndRight', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_MOVE)), - vscode.commands.registerTextEditorCommand('cursorWordStartLeftSelect', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_SELECT)), - vscode.commands.registerTextEditorCommand('cursorWordEndRightSelect', editor => navigator.doAction(editor, null, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_SELECT)), - vscode.commands.registerTextEditorCommand('deleteWordLeft', (editor, change) => navigator.doAction(editor, change, camelCaseNav.DIRECTION_LEFT, camelCaseNav.ACTION_DELETE)), - vscode.commands.registerTextEditorCommand('deleteWordRight', (editor, change) => navigator.doAction(editor, change, camelCaseNav.DIRECTION_RIGHT, camelCaseNav.ACTION_DELETE)), - ); - } - - vscode.window.onDidChangeActiveTextEditor(onTextEditorChange, null, context.subscriptions); - vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, context.subscriptions); - - if (vscode.window.activeTextEditor) { - onTextEditorChange(vscode.window.activeTextEditor); - } - }, - deactivate() { } -}; + activate(context) { + + context.subscriptions.push( + vscode.commands.registerTextEditorCommand('cursorToolsAnchorAdd', onCommandToggleAnchor), + vscode.commands.registerTextEditorCommand('cursorToolsAnchorActivate', onCommandActivateCursors), + vscode.commands.registerTextEditorCommand('cursorToolsAnchorClean', onCommandCleanAnchors) + ) + + vscode.window.onDidChangeActiveTextEditor(onTextEditorChange, null, context.subscriptions) + vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, context.subscriptions) + + if (vscode.window.activeTextEditor) { + onTextEditorChange(vscode.window.activeTextEditor) + } + }, + deactivate() { } +} function onTextEditorChange(textEditor) { - if (textEditor) { - textEditor.cursorAnchors = textEditor.cursorAnchors || []; - } + if (textEditor) { + textEditor.cursorAnchors = textEditor.cursorAnchors || [] + } } - diff --git a/typings/node.d.ts b/typings/node.d.ts deleted file mode 100644 index 5ed7730..0000000 --- a/typings/node.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// \ No newline at end of file diff --git a/typings/vscode-typings.d.ts b/typings/vscode-typings.d.ts deleted file mode 100644 index c6c2815..0000000 --- a/typings/vscode-typings.d.ts +++ /dev/null @@ -1 +0,0 @@ -///