Repository URL to install this package:
|
Version:
1.2.0-1346 ▾
|
<!DOCTYPE html><html><head><meta charset="UTF-8"><link rel="stylesheet" href="icons/fontello/css/fontello-embedded.css" media="screen" charset="utf-8"><link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css" media="screen" charset="utf-8"><link rel="stylesheet" href="css/index.css" media="screen" charset="utf-8"><script type="text/javascript" src="../node_modules/angular/angular.min.js"></script><script type="text/javascript" src="../node_modules/selection-model/dist/selection-model.min.js"></script><script type="text/javascript" src="../node_modules/ace-builds/src-min-noconflict/ace.js"></script><script type="text/javascript" src="js/index.js"></script></head><body ng-app="ndm" ng-controller="ShellController as shell" ng-drag-drop><div class="app-big-loading"><img src="img/loading.svg"><div>Loading</div></div><div class="page"><div ng-controller="LeftBarController as leftBar"><div class="dialog dialog-window" ng-if="leftBar.editorFilePath" ng-ace-editor ng-ace-editor-theme="xcode" ng-ace-file-name="{{leftBar.editorFileName}}" ng-ace-file="{{leftBar.editorFilePath}}" ng-model="aceFileModel"><div class="prompt-window-options"><span class="prompt-window-infos" title="{{leftBar.rightClickedProject.path}}"><img src="img/loading.svg" width="13" ng-show="(savingFile && !savedFile) || loadingFile"><i class="fa fa-check color-primary" ng-show="savedFile && !savingFile"></i>{{leftBar.rightClickedProject.dirName}}/{{leftBar.editorFileName}}</span><button ng-click="saveFile()">Save</button><button ng-click="leftBar.editorFilePath = undefined; aceFileModel = undefined;">Close</button></div><div class="window"><div class="ng-ace-editor" autofocus ng-autofocus="true"></div></div></div><div class="dialog dialog-window" ng-if="leftBar.showHistoryPrompt" ng-init="leftBar.showSnapshotStatus = []; leftBar.selectedSnapshot = undefined;"><div class="prompt-window-options"><span class="prompt-window-infos" title="{{leftBar.rightClickedProject.path}}"><img src="img/loading.svg" width="13" ng-show="leftBar.restoringSnapshot[leftBar.rightClickedProject.path] && !leftBar.restoredSnapshot[leftBar.rightClickedProject.path]"> {{leftBar.rightClickedProject.dirName}}/</span><button ng-click="leftBar.showHistoryPrompt = undefined;">Close</button><button ng-click="leftBar.deleteSnapshot()" ng-if="leftBar.selectedSnapshot && leftBar.projectHistory && leftBar.projectHistory.length > 0">Delete</button><button ng-if="leftBar.projectHistory && leftBar.projectHistory.length > 0 && leftBar.selectedSnapshot" ng-click="leftBar.restoreSnapshot()" ng-disabled="leftBar.restoringSnapshot[leftBar.rightClickedProject.path]"><span ng-show="!leftBar.restoringSnapshot[leftBar.rightClickedProject.path]">Restore</span><span ng-show="leftBar.restoringSnapshot[leftBar.rightClickedProject.path]">Restoring</span></button></div><div class="window"><div class="prompt-window-holder" ng-if="!leftBar.projectHistory || leftBar.projectHistory && leftBar.projectHistory.length <= 0">You have no snapshots for this project.</div><div class="prompt-history-item" ng-class="{'active': leftBar.selectedSnapshot === item}" ng-repeat="item in leftBar.projectHistory | orderBy : $index : -1" ng-click="leftBar.selectedSnapshot = item;"><div><a ng-click="leftBar.showSnapshotStatus[item.datetime] = true;" ng-show="!leftBar.showSnapshotStatus[item.datetime]"><i class="fa fa-caret-right color-black"></i></a><a ng-click="leftBar.showSnapshotStatus[item.datetime] = false;" ng-show="leftBar.showSnapshotStatus[item.datetime]"><i class="fa fa-caret-down color-black"></i></a><i class="fa fa-database color-primary"></i> {{item.datetime}}<div class="prompt-history-status" ng-if="leftBar.showSnapshotStatus[item.datetime]" ng-ace-editor ng-ace-editor-readonly="true" ng-ace-editor-mode="json" ng-ace-editor-theme="xcode" ng-model="aceFileModel" ng-ace-source="{{item.status}}"><div class="ng-ace-editor"></div></div></div></div></div></div><div class="left-column overflow-x-hidden"><div class="row"><a class="row" ng-class="{'active': leftBar.global, 'action-link-disabled': shell.globalDisabled}" ng-click="shell.globalDisabled ? shell.enableGlobal() : leftBar.selectGlobal()"><img class="global-img" src="img/npm-logo-cube.svg">Globals</a><div ng-repeat="item in shell.projects | orderBy: 'dirName' track by $index"><a class="row project" title="{{ item.shrinkwrap ? 'Has shrinkwrap' : '' }}" ng-right-click="leftBar.rightClickMenu(item, $event)" ng-class="{'active': leftBar.selectedProject === item && !leftBar.global, 'shrinkwrapped': item.shrinkwrap}" ng-if="leftBar.removedProject !== item" ng-click="leftBar.selectProject(item, $event)"><i class="fa fa-folder-o"></i><i class="fa fa-lock" ng-if="item.shrinkwrap"></i>{{item.dirName}}<span class="button-delete-project" ng-click="leftBar.deleteProject(item, $event)"><i class="fa fa-times-circle-o"></i></span></a><div ng-init="leftBar.cancelProgressActionId = false;"><div class="left-progress left-progress-minor color-white fake-link" ng-repeat="runningScript in leftBar.npmRunningScriptsProject[item.path] track by $index"><small class="running-name">↳ running: {{runningScript}}</small><small class="running-end" ng-click="leftBar.deleteRunningScript(item.path, runningScript)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div><div class="left-progress color-white fake-link" ng-show="leftBar.npmInstallingProjects[item.dirName]"><small class="running-name">↳ installing</small><small class="running-end" ng-click="leftBar.deleteInstallingProjects(item.dirName)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div><div class="left-progress color-white" ng-show="leftBar.npmReinstallingProjects[item.dirName]"><small class="running-name">↳ reinstalling</small><small class="running-end" ng-click="leftBar.deleteReinstallingProjects(item.dirName)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div><div class="left-progress color-white" ng-show="leftBar.npmBuildingProjects[item.dirName]"><small class="running-name">↳ building</small><small class="running-end" ng-click="leftBar.deleteBuildingProjects(item.dirName)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div><div class="left-progress color-white" ng-show="leftBar.npmPruningProjects[item.dirName]"><small class="running-name">↳ pruning</small><small class="running-end" ng-click="leftBar.deletePruningProjects(item.dirName)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div><div class="left-progress color-white" ng-show="leftBar.npmDedupingProjects[item.dirName]"><small class="running-name">↳ deduping</small><small class="running-end" ng-click="leftBar.deleteDedupingProjects(item.dirName)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div><div class="left-progress color-white" ng-show="leftBar.npmShrinkwrappingProjects[item.dirName]"><small class="running-name">↳ shrinkwrapping</small><small class="running-end" ng-click="leftBar.deleteShrinkwrappingProjects(item.dirName)"><i class="fa fa-times-circle-o"></i>dismiss</small><div class="left-progress-loading"></div></div></div></div></div><br></div></div><div class="right-column"><div class="content" ng-controller="ContentController as content"><span npm-loading></span><div class="dialog dialog-window" ng-if="shell.activeLink === 'doctor'"><div class="prompt-window-options"><img ng-show="!shell.finishedRunningDoctor" src="img/loading.svg" width="13"><i class="fa fa-check color-primary" ng-show="shell.finishedRunningDoctor"></i><button ng-click="shell.activeLink = false">Close</button><button ng-click="shell.activeClickedLink('doctor'); shell.runDoctor()" ng-if="!shell.runningDoctor">Run again</button></div><div class="window" contenteditable="true" ng-autoscroll><div class="col-md-12 logs"><b>Running doctor</b></div><div class="col-md-12 logs">npm ping: <b>{{shell.doctorLog[0][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[0][2] && shell.doctorLog[0][2].length > 0">↳ {{shell.doctorLog[0][2]}}</div><div class="col-md-12 logs">npm -v: <b>{{shell.doctorLog[1][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[1][2] && shell.doctorLog[1][2].length > 0">↳ {{shell.doctorLog[1][2]}}</div><div class="col-md-12 logs">node -v: <b>{{shell.doctorLog[2][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[2][2] && shell.doctorLog[2][2].length > 0">↳ {{shell.doctorLog[2][2]}}</div><div class="col-md-12 logs">npm config get registry: <b>{{shell.doctorLog[3][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[3][2] && shell.doctorLog[3][2].length > 0">↳ {{shell.doctorLog[3][2]}}</div><div class="col-md-12 logs">which git: <b>{{shell.doctorLog[4][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[4][2] && shell.doctorLog[4][2].length > 0">↳ {{shell.doctorLog[4][2]}}</div><div class="col-md-12 logs">Perms check on cached files: <b>{{shell.doctorLog[5][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[5][2] && shell.doctorLog[5][2].length > 0">↳ {{shell.doctorLog[5][2]}}</div><div class="col-md-12 logs">Perms check on global node_modules: <b>{{shell.doctorLog[6][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[6][2] && shell.doctorLog[6][2].length > 0">↳ {{shell.doctorLog[6][2]}}</div><div class="col-md-12 logs">Perms check on local node_modules: <b>{{shell.doctorLog[7][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[7][2] && shell.doctorLog[7][2].length > 0">↳ {{shell.doctorLog[7][2]}}</div><div class="col-md-12 logs">Checksum cached files : <b>{{shell.doctorLog[8][1]}}</b></div><div class="col-md-12 logs logs-error" ng-if="shell.doctorLog[8][2] && shell.doctorLog[8][2].length > 0">↳ {{shell.doctorLog[8][2]}}</div></div></div><div class="row home bg-ultralight" ng-show="content.tabs.length <= 0"><div><div class="separator10"></div><small class="color-black">Select or drag npm projects to start</small><div class="separator10"></div><div class="separator10"></div><button class="home-button" ng-click="shell.openChooser()">Add projects</button></div></div><div class="tab" npm-tabs ng-repeat="tab in content.tabs" npm-tab-id="{{tab}}" ng-show="content.activeTab === tab && tab"><div class="tab-menu"><span class="tab-button" ng-repeat="tab in content.tabs" ng-class="{'active': content.activeTab === tab}" ng-click="content.activeTab = tab"><spanner ng-if="tab === '<global>'"><img src="img/npm-logo-cube.svg" width="16">Globals</spanner><spanner ng-if="tab !== '<global>'">{{ tab | lastNameInPath}}</spanner><a ng-click="content.closeProjectTab(tab)"><i class="fa fa-remove"></i></a></span></div><div class="top-menu" top-menu top-menu-project-path-id="{{tab}}" ng-class="{'freezed': performingAction}"><div class="dialog prompt" ng-show="showSpecificVersionPrompt && currentSelectedPackages.length === 1" ng-init="versionPackageVersion = undefined"><form ng-submit="installVersionPackage(currentSelectedPackages[0], versionPackageVersion)"><input placeholder="Package name" type="text" readonly disabled ng-value="currentSelectedPackages[0].name"> <input class="hide" placeholder="@version" ng-autofocus type="text" ng-model="versionPackageVersion" ng-value="versionPackageVersion"> <span class="prompt-kind"><select name="packageVersionSelect" ng-model="pkgVersionModel" ng-change="versionPackageVersion = pkgVersionModel"><option value="" selected>-</option><option ng-repeat="pkgVersion in selectedPackageViewInfos.versions | orderBy : pkgVersion : 'reverse' track by $index" ng-value="pkgVersion">{{pkgVersion}}</option></select></span><button ng-disabled="installingPackageVersion"><span ng-show="!installingPackageVersion">Install</span><span ng-show="installingPackageVersion"><img src="img/loading.svg" width="13"></span></button> <button class="button-close-prompt pull-right" type="button" ng-click="hideInstallVersionPrompt();"><i class="fa fa-remove"></i></button></form></div><div class="dialog prompt" ng-show="showInstallPrompt"><form ng-submit="installPackage(packageName, newPackageKind)"><!--do not remove placeholder even if it's not an input--><div class="tags-input" ng-tag-input tab-path-id="{{tab}}" ng-autofocus ng-model="packageName" ng-keyup="search(packageName[packageName.length - 1].name)" contenteditable="true" ng-attr-disabled="{{installingPackage ? 'disabled' : ''}}" placeholder="package<@version> ..."></div><!-- this input holds search keywords, do not remove it --><input ng-hide="true" ng-model="searchKeywords" ng-bind="packageName"> <span class="prompt-kind"><input type="checkbox" ng-model="newPackageKind" ng-disabled="tab === '<global>'"> dev </span><!--do not remove id="" from the button--><button id="install-new-packages-button" ng-disabled="installingPackage || !packageName"><span ng-show="!installingPackage">Install</span><span ng-show="installingPackage"><img src="img/loading.svg" width="13"></span></button> <button class="button-close-prompt pull-right" type="button" ng-click="hideInstallPrompt();"><i class="fa fa-remove"></i></button></form><div class="prompt-search" ng-hide="installingPackage"><div class="prompt-search-content"><div class="prompt-search-item" ng-repeat="item in searchResults.objects" ng-click="searchChoosePackage(item.package.name)"><h5>{{item.package.name}}</h5><div>{{item.package.description}}</div></div><div class="prompt-search-loader" ng-show="searchingNpm"><img src="img/loading.svg">Loading results ...</div></div></div></div><div class="row"><div class="col-xs-12"><button class="button-add-package" title="Add Packages" ng-click="showInstallPrompt = true" ng-class="{'active': showInstallPrompt}"><i class="fa fa-plus-circle"></i>Add package</button><span ng-show="showMenuButtons"><button class="button-uninstall" title="Uninstall" ng-click="activeClickedLink('5'); uninstallPackage(currentSelectedPackages)" ng-class="{'active': activeLink === '5'}"><i class="fa fa-remove"></i>Uninstall</button><button class="button-update" title="Update" ng-click="activeClickedLink('2'); updatePackage(currentSelectedPackages)" ng-class="{'active': activeLink === '2'}"><i class="fa fa-level-up"></i>Update</button><button class="button-latest" title="Install Latest" ng-click="activeClickedLink('3'); installLatest(currentSelectedPackages)" ng-class="{'active': activeLink === '3'}"><i class="fa fa-rocket"></i>Latest</button><button class="button-version" title="Install Version" ng-show="currentSelectedPackages.length === 1" ng-click="showSpecificVersionPrompt = true" ng-class="{'active': showSpecificVersionPrompt}"><i class="fa fa-at"></i>Version</button></span></div></div></div><div ng-show="tab"><div class="row table-header"><div class="col-xs-4 clickable" ng-click="sortTableBy('name')">Package<i class="fa" ng-class="{'fa-sort': !tableOrderBy.includes('-name') || !tableOrderBy.includes('name'), 'fa-sort-down': tableOrderBy.includes('-name'), 'fa-sort-up': tableOrderBy.includes('name')}"></i></div><div class="col-xs-2">Current</div><div class="col-xs-2">Wanted</div><div class="col-xs-2">Latest</div><div class="col-xs-2 clickable" ng-click="sortTableBy('kind')">Env<i class="fa" ng-class="{'fa-sort': !tableOrderBy.includes('-kind') || !tableOrderBy.includes('kind'), 'fa-sort-down': tableOrderBy.includes('-kind'), 'fa-sort-up': tableOrderBy.includes('kind')}"></i></div></div><div class="table-body" ng-table-keyboard ng-class="{'freezed': showLoadingSelectedRow}"><div class="table-loader" ng-show="loading && !loaded"><div class="table-loader-content"><img src="img/loading.svg">Loading packages...</div></div><!-- show disabled npm global row if in globals--><div class="row table-row disabled" ng-repeat="aPackage in packageInformations" ng-if="isGlobalProject && aPackage.name === 'npm'" title="Do not perform npm global actions from here"><div class="col-xs-4">{{ aPackage.name }}</div><div class="col-xs-2"><span ng-class="{'color-positive font-light': !aPackage.wanted && !aPackage.latest}">{{ aPackage.current }}</span></div><div class="col-xs-2"><i class="fa fa-check" ng-if="!aPackage.wanted && !aPackage.latest"></i>{{ aPackage.wanted }}</div><div class="col-xs-2"><b ng-if="aPackage.latest">{{ aPackage.latest }}</b><i class="fa fa-check color-positive" ng-if="!aPackage.wanted && !aPackage.latest"></i></div><div class="col-xs-2">{{ aPackage.kind }}</div></div><!-- show all packages except for npm global--><div class="row table-row" ng-repeat="aPackage in packageInformations | orderBy: tableOrderBy" ng-hide="!packageInformations" id="table-item-{{$index}}" ng-table-keyboard-selected-items="selectedPackages" ng-if="!isGlobalProject || isGlobalProject && aPackage.name !== 'npm'" selection-model selection-model-mode="'multiple'" selection-model-selected-items="selectedPackages" ng-click="selectPackages(selectedPackages)" ng-class="{'active': selectedPackages.includes(aPackage), 'table-row-loading': currentSelectedPackages.includes(aPackage) && showLoadingSelectedRow}"><div class="col-xs-4">{{ aPackage.name }}</div><div class="col-xs-2"><span ng-class="{'color-positive font-light': !aPackage.wanted && !aPackage.latest}">{{ aPackage.current }}</span></div><div class="col-xs-2"><i class="fa fa-check" ng-if="!aPackage.wanted && !aPackage.latest"></i>{{ aPackage.wanted }}</div><div class="col-xs-2"><b ng-if="aPackage.latest">{{ aPackage.latest }}</b><i class="fa fa-check color-positive" ng-if="!aPackage.wanted && !aPackage.latest"></i></div><div class="col-xs-2">{{ aPackage.kind }}</div></div></div><div><div class="table-infos"><div class="table-infos-content"><div class="information"><b>Name:</b> {{packageViewInfos.name || '-'}}</div><div class="information" title="{{packageViewInfos.description}}"><b>Description:</b> {{packageViewInfos.description || '-' | removeHTML}}</div><div class="information" title="Package dependencies"><b>Dependencies:</b> <span ng-repeat="(dep, value) in packageViewInfos.dependencies"><a title="Open in browser" ng-click="shell.openBrowserLink('https://npmjs.com/package/' + dep)">{{ dep }}</a><span ng-if="!$last">,</span> </span><span ng-if="!packageViewInfos.dependencies || packageViewInfos.dependencies.length <= 0">-</span></div><div class="information" title="Package repository url"><b>Repository:</b> {{packageViewInfos.repository.url || '-'}}</div><div class="information"><b>Issues:</b> <a title="Open in browser" ng-if="packageViewInfos.bugs.url" ng-click="shell.openBrowserLink(packageViewInfos.bugs.url)">{{packageViewInfos.bugs.url}}</a><span ng-if="!packageViewInfos.bugs || !packageViewInfos.bugs.url">-</span></div><div class="information"><b>Url:</b> <a title="Open in browser" ng-init="pkgUrlToNpmJsWebsite = 'https://npmjs.com/package/' + packageViewInfos.name" ng-if="packageViewInfos.name" ng-click="shell.openBrowserLink(pkgUrlToNpmJsWebsite)">{{ pkgUrlToNpmJsWebsite }}</a><span ng-if="!packageViewInfos.name">-</span></div><div class="information"><b>License:</b> {{packageViewInfos.license.type || packageViewInfos.license || '-'}}</div></div></div></div></div></div></div></div></div><!-- do not touch indentation--><div class="footer bg-footer"><span class="badge-version" title="Current npm version" ng-mouseover="shell.updateNpmBadgeVersion()"><b>npm</b> <small ng-if="shell.npmCurrentVersionBadge">v{{shell.npmCurrentVersionBadge}}</small><button class="button-global" type="button" title="Enable ndm in global folder" ng-show="shell.globalDisabled" ng-click="shell.enableGlobal()"><i class="fa fa-globe color-primary"></i>Enable globals</button><button class="button-update" type="button" ng-show="!shell.globalDisabled && shell.npmCurrentVersionBadge" title="Update npm" ng-click="shell.updateNpm()"><i class="fa fa-history"></i>Update npm</button></span><span class="npm-status pull-right" ng-mouseenter="shell.checkRegistryStatus()"><i class="fa fa-disk" title="npm registry is available" ng-show="!shell.loadingRegistryStatus && shell.registryStatus"></i><i class="fa fa-disk" title="npm registry checking ..." ng-show="shell.loadingRegistryStatus"></i><i class="fa fa-disk" title="npm registry is unavailable" ng-show="!shell.loadingRegistryStatus && !shell.registryStatus"></i><div class="loader" ng-class="{'loading': shell.loadingRegistryStatus}"><i class="fa fa-circle" ng-class="{'available': !shell.loadingRegistryStatus && shell.registryStatus}"></i><i class="fa fa-circle" ng-class="{'unavailable': !shell.loadingRegistryStatus && !shell.registryStatus}"></i></div></span><span class="pull-right"><button class="button-doctor" type="button" title="Run doctor" ng-click="shell.activeClickedLink('doctor'); shell.runDoctor()"><i class="fa fa-doctor"></i>Doctor</button></span></div></body></html>