changeset 290:883703729178

Merge pull request #32 from piper-audio/chore/change-waves-ui-dependency Use our waves-ui fork.
author Lucas Thompson <LucasThompson@users.noreply.github.com>
date Fri, 05 May 2017 15:00:21 +0100
parents 6c51fd776008 (current diff) 6a83df5029fe (diff)
children 71f9286da66f
files src/app/waveform/waves-ui.d.ts
diffstat 7 files changed, 246 insertions(+), 252 deletions(-) [+]
line wrap: on
line diff
--- a/package.json	Thu May 04 17:17:57 2017 +0100
+++ b/package.json	Fri May 05 15:00:21 2017 +0100
@@ -27,7 +27,7 @@
     "piper": "github:piper-audio/piper-js",
     "requirejs": "^2.3.3",
     "rxjs": "^5.1.0",
-    "waves-ui": "github:cannam/waves-ui#b7675bcb81fc79a8b24eff2e1e3606a754df88aa",
+    "waves-ui-piper": "piper-audio/waves-ui-piper",
     "zone.js": "0.8.7"
   },
   "devDependencies": {
--- a/src/app/notebook-feed/notebook-feed.component.ts	Thu May 04 17:17:57 2017 +0100
+++ b/src/app/notebook-feed/notebook-feed.component.ts	Fri May 05 15:00:21 2017 +0100
@@ -9,7 +9,7 @@
   Input,
   OnDestroy
 } from '@angular/core';
-import Waves from 'waves-ui';
+import Waves from 'waves-ui-piper';
 import {AnalysisItem} from '../analysis-item/analysis-item.component';
 import {Observable} from 'rxjs/Observable';
 import {Dimension} from '../app.module';
--- a/src/app/spectrogram/Spectrogram.ts	Thu May 04 17:17:57 2017 +0100
+++ b/src/app/spectrogram/Spectrogram.ts	Fri May 05 15:00:21 2017 +0100
@@ -4,7 +4,7 @@
 import {RealFft, KissRealFft} from 'piper/fft/RealFft';
 import {hann} from 'piper/FftUtilities';
 import {Framing} from 'piper';
-import Waves from 'waves-ui';
+import Waves from 'waves-ui-piper';
 
 class SpectrogramEntity extends Waves.utils.MatrixEntity {
 
--- a/src/app/waveform/waveform.component.ts	Thu May 04 17:17:57 2017 +0100
+++ b/src/app/waveform/waveform.component.ts	Fri May 05 15:00:21 2017 +0100
@@ -13,7 +13,7 @@
   AudioPlayerService, AudioResource,
   AudioResourceError
 } from '../services/audio-player/audio-player.service';
-import wavesUI from 'waves-ui';
+import wavesUI from 'waves-ui-piper';
 import {
   FeatureExtractionService
 } from '../services/feature-extraction/feature-extraction.service';
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/app/waveform/waves-ui-piper.d.ts	Fri May 05 15:00:21 2017 +0100
@@ -0,0 +1,119 @@
+/// <reference path="../../../node_modules/@types/node/index.d.ts"/>
+declare const AmbientInstance: WavesUserInterface;
+
+declare module 'waves-ui-piper' {
+  export default AmbientInstance;
+}
+
+interface WavesUserInterface {
+  core: Core;
+  helpers: any;
+  states: any;
+  utils: Utilities;
+  shapes: any;
+}
+
+interface MatrixEntity {
+  getColumnCount(): number;
+  getColumnHeight(): number;
+  getColumn(n: number): Float32Array | number[];
+  getStepDuration(): number;
+  getStartTime(): number;
+  dispose(): void;
+}
+
+type TimeContext = any; // TODO
+
+interface Area {
+  top: number;
+  left: number;
+  width: number;
+  height: number;
+}
+
+interface Layer extends NodeJS.EventEmitter {
+  start: number;
+  offset: number;
+  duration: number;
+  stretchRatio: number;
+  yDomain: number[];
+  opacity: number;
+  readonly timeToPixel: () => (time: number) => number;
+  readonly valueToPixel: () => (value: number) => number;
+  readonly items: Element[];
+  readonly selectedItems: Element[];
+  data: ArrayLike<any> | Object;
+  destroy(): void;
+  configureTimeContextBehaviour(ctor: ObjectConstructor): void;
+  setTimeContext(context: TimeContext): void;
+  configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
+                 accessors: Object,
+                 options: Object): void;
+  configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
+                       accessors: Object,
+                       options: Object): void;
+  setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
+  select(...$items: Element[]);
+  unselect(...$items: Element[]);
+  toggleSelection(...$items: Element[]);
+  edit($items: Element[], dx: number, dy: number, $target: Element): void;
+  setContextEditable(bool: boolean): void;
+  editContext(dx: number, dy: number, $target: Element): void;
+  stretchContext(dx: number, dy: number, $target: Element): void;
+  getItemFromDOMElement($el: Element): Element | null;
+  getDatumFromItem($item: Element): Object | any[] | null;
+  getDatumFromDOMElement($item: Element): Object | any[] | null;
+  hasItem($item: Element): boolean;
+  hasElement($el: Element): boolean;
+  getItemsInArea(area: Area): Element[];
+  render(): void;
+  update(): void;
+  updateContainer(): void;
+  updateShapes(): void;
+}
+
+interface LayerConstructor {
+  new(dataType: 'entity' | 'collection',
+      data: ArrayLike<any> | Object,
+      options: Object): Layer;
+}
+
+interface MatrixEntityConstructor {
+  new(): MatrixEntity;
+}
+
+interface PrefilledMatrixEntityConstructor {
+  new(data: Float32Array[] | number[][],
+      startTime: number,
+      stepDuration: number): MatrixEntity;
+}
+
+interface Utilities {
+  MatrixEntity: MatrixEntityConstructor;
+  PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
+  scales: any;
+}
+
+interface Core {
+  Layer: LayerConstructor;
+  LayerTimeContext: any; // TODO
+  Timeline: any; // TODO
+  TimelineTimeContext: TimelineTimeContextConstructor;
+}
+
+type Timeline = any;
+
+interface TimelineTimeContext {
+  pixelsPerSecond: number;
+  readonly computedPixelsPerSecond: number;
+  offset: number;
+  zoom: number;
+  visibleWidth: number;
+  readonly visibleDuration: number;
+  maintainVisibleDuration: boolean;
+  timeToPixel: (time: number) => number;
+}
+
+interface TimelineTimeContextConstructor {
+  new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
+}
--- a/src/app/waveform/waves-ui.d.ts	Thu May 04 17:17:57 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/// <reference path="../../../node_modules/@types/node/index.d.ts"/>
-declare const AmbientInstance: WavesUserInterface;
-
-declare module 'waves-ui' {
-  export default AmbientInstance;
-}
-
-interface WavesUserInterface {
-  core: Core;
-  helpers: any;
-  states: any;
-  utils: Utilities;
-  shapes: any;
-}
-
-interface MatrixEntity {
-  getColumnCount(): number;
-  getColumnHeight(): number;
-  getColumn(n: number): Float32Array | number[];
-  getStepDuration(): number;
-  getStartTime(): number;
-  dispose(): void;
-}
-
-type TimeContext = any; // TODO
-
-interface Area {
-  top: number;
-  left: number;
-  width: number;
-  height: number;
-}
-
-interface Layer extends NodeJS.EventEmitter {
-  start: number;
-  offset: number;
-  duration: number;
-  stretchRatio: number;
-  yDomain: number[];
-  opacity: number;
-  readonly timeToPixel: () => (time: number) => number;
-  readonly valueToPixel: () => (value: number) => number;
-  readonly items: Element[];
-  readonly selectedItems: Element[];
-  data: ArrayLike<any> | Object;
-  destroy(): void;
-  configureTimeContextBehaviour(ctor: ObjectConstructor): void;
-  setTimeContext(context: TimeContext): void;
-  configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
-                 accessors: Object,
-                 options: Object): void;
-  configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
-                       accessors: Object,
-                       options: Object): void;
-  setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
-  select(...$items: Element[]);
-  unselect(...$items: Element[]);
-  toggleSelection(...$items: Element[]);
-  edit($items: Element[], dx: number, dy: number, $target: Element): void;
-  setContextEditable(bool: boolean): void;
-  editContext(dx: number, dy: number, $target: Element): void;
-  stretchContext(dx: number, dy: number, $target: Element): void;
-  getItemFromDOMElement($el: Element): Element | null;
-  getDatumFromItem($item: Element): Object | any[] | null;
-  getDatumFromDOMElement($item: Element): Object | any[] | null;
-  hasItem($item: Element): boolean;
-  hasElement($el: Element): boolean;
-  getItemsInArea(area: Area): Element[];
-  render(): void;
-  update(): void;
-  updateContainer(): void;
-  updateShapes(): void;
-}
-
-interface LayerConstructor {
-  new(dataType: 'entity' | 'collection',
-      data: ArrayLike<any> | Object,
-      options: Object): Layer;
-}
-
-interface MatrixEntityConstructor {
-  new(): MatrixEntity;
-}
-
-interface PrefilledMatrixEntityConstructor {
-  new(data: Float32Array[] | number[][],
-      startTime: number,
-      stepDuration: number): MatrixEntity;
-}
-
-interface Utilities {
-  MatrixEntity: MatrixEntityConstructor;
-  PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
-  scales: any;
-}
-
-interface Core {
-  Layer: LayerConstructor;
-  LayerTimeContext: any; // TODO
-  Timeline: any; // TODO
-  TimelineTimeContext: TimelineTimeContextConstructor;
-}
-
-type Timeline = any;
-
-interface TimelineTimeContext {
-  pixelsPerSecond: number;
-  readonly computedPixelsPerSecond: number;
-  offset: number;
-  zoom: number;
-  visibleWidth: number;
-  readonly visibleDuration: number;
-  maintainVisibleDuration: boolean;
-  timeToPixel: (time: number) => number;
-}
-
-interface TimelineTimeContextConstructor {
-  new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
-}
--- a/yarn.lock	Thu May 04 17:17:57 2017 +0100
+++ b/yarn.lock	Fri May 05 15:00:21 2017 +0100
@@ -1,8 +1,8 @@
 # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
 # yarn lockfile v1
 "@angular/animations@^4.0.3":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-4.1.0.tgz#97b642aee01b5406e03ec65e499342ba91e2dd38"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-4.1.1.tgz#1000f8b22dc2031a8c36d225eb2dcf5f6c0d0af5"
 
 "@angular/cli@1.0.1":
   version "1.0.1"
@@ -69,52 +69,52 @@
     node-sass "^4.3.0"
 
 "@angular/common@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.1.0.tgz#4370f569e51ddd99963b7f4aa58c1a5dcc5fea52"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.1.1.tgz#088a13a70c5390c5c9613aa05754b74ee18e1afb"
 
 "@angular/compiler-cli@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.1.0.tgz#727aaada8bfd94285e9818995925048f7fdf1200"
-  dependencies:
-    "@angular/tsc-wrapped" "4.1.0"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.1.1.tgz#8cea89ee12129c3f0edb55853e18b37b164f2953"
+  dependencies:
+    "@angular/tsc-wrapped" "4.1.1"
     minimist "^1.2.0"
     reflect-metadata "^0.1.2"
 
 "@angular/compiler@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.1.0.tgz#be1ade5b6aec81f03c29d52bcb95925a28900dcb"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.1.1.tgz#fc62459056465f624c3ac6f68dadcc9ba74c4ae0"
 
 "@angular/core@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.1.0.tgz#72ec173316879571880c9c483ed6dfc0caab94b0"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.1.1.tgz#1230645c842f8a6a050403d4947f982e7ef70c60"
 
 "@angular/forms@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.1.0.tgz#8eae2a45c4ba064b377f9280e59c012b5dac6b80"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.1.1.tgz#6af39f7c416e9f038c39f7ee5bfa51d9da550bf0"
 
 "@angular/http@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.1.0.tgz#7ba0c4d044dee964021b7cf19cb146a2c31577a5"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.1.1.tgz#1e052d02e52aee7b48d1de626abbf067e850a242"
 
 "@angular/material@^2.0.0-beta.3":
   version "2.0.0-beta.3"
   resolved "https://registry.yarnpkg.com/@angular/material/-/material-2.0.0-beta.3.tgz#ec31dee61d7300ece28fee476852db236ded1e13"
 
 "@angular/platform-browser-dynamic@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.1.0.tgz#0250d82d4abd36be60bb31fc7448ac6e28036690"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.1.1.tgz#682881035140e22d498abca139907aa8187f6bfa"
 
 "@angular/platform-browser@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.1.0.tgz#b981386be1a36f2af7f0679447fd97b7267b25de"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.1.1.tgz#e2f545b458e7858cc0b20b0ae4cc99237560fb72"
 
 "@angular/router@^4.0.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/router/-/router-4.1.0.tgz#dd3563662f95ca3aa3dd9ff13c6ed4bea1d90b06"
-
-"@angular/tsc-wrapped@4.1.0":
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.1.0.tgz#07cbd61d91adde4c2daf9a41605152952b8832b3"
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/router/-/router-4.1.1.tgz#0a7ce03065197982786782cf5429fa6f0c0300fa"
+
+"@angular/tsc-wrapped@4.1.1":
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.1.1.tgz#ade793cdbe64c650c5f5946ff424c6a3577b09d8"
   dependencies:
     tsickle "^0.21.0"
 
@@ -144,8 +144,8 @@
   resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.38.tgz#a4379124c4921d4e21de54ec74669c9e9b356717"
 
 "@types/node@^6.0.46", "@types/node@~6.0.60":
-  version "6.0.71"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.71.tgz#aa49e0109e35f1457867b45822caf7f4883ca248"
+  version "6.0.72"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.72.tgz#0f19de38555f3c33d733d678991347f7d0eefaff"
 
 "@types/q@^0.0.32":
   version "0.0.32"
@@ -200,8 +200,8 @@
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
 
 ajv@^4.11.2, ajv@^4.7.0, ajv@^4.9.1:
-  version "4.11.7"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.7.tgz#8655a5d86d0824985cc471a1d913fb6729a0ec48"
+  version "4.11.8"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
   dependencies:
     co "^4.6.0"
     json-stable-stringify "^1.0.1"
@@ -413,8 +413,8 @@
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
 
 async@^2.1.2, async@^2.1.4, async@^2.1.5:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/async/-/async-2.3.0.tgz#1013d1051047dd320fe24e494d5c66ecaf6147d9"
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611"
   dependencies:
     lodash "^4.14.0"
 
@@ -453,7 +453,7 @@
     esutils "^2.0.2"
     js-tokens "^3.0.0"
 
-babel-core@^5.4.3, babel-core@^5.6.21:
+babel-core@^5.6.21:
   version "5.8.38"
   resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-5.8.38.tgz#1fcaee79d7e61b750b00b8e54f6dfc9d0af86558"
   dependencies:
@@ -1009,8 +1009,8 @@
     lodash.uniq "^4.5.0"
 
 caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
-  version "1.0.30000664"
-  resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000664.tgz#e16316e5fdabb9c7209b2bf0744ffc8a14201f22"
+  version "1.0.30000665"
+  resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000665.tgz#e84f4277935f295f546f8533cb0b410a8415b972"
 
 capture-stack-trace@^1.0.0:
   version "1.0.0"
@@ -1353,15 +1353,15 @@
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
 
 cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.2.tgz#c43ae86d238f08f1728a345ed60ceb0aef63c060"
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.3.tgz#952771eb0dddc1cb3fa2f6fbe51a522e93b3ee0a"
   dependencies:
     is-directory "^0.3.1"
     js-yaml "^3.4.3"
-    json-parse-helpfulerror "^1.0.3"
     minimist "^1.2.0"
     object-assign "^4.1.0"
     os-homedir "^1.0.1"
+    parse-json "^2.2.0"
     require-from-string "^1.1.0"
 
 create-ecdh@^4.0.0:
@@ -1560,7 +1560,7 @@
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
 
-debug@*, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@2:
+debug@*, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.3, debug@2:
   version "2.6.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a"
   dependencies:
@@ -1808,8 +1808,8 @@
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
 
 electron-to-chromium@^1.2.7:
-  version "1.3.8"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.8.tgz#b2c8a2c79bb89fbbfd3724d9555e15095b5f5fb6"
+  version "1.3.9"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.9.tgz#db1cba2a26aebcca2f7f5b8b034554468609157d"
 
 elliptic@^6.0.0:
   version "6.4.0"
@@ -2105,8 +2105,8 @@
     loader-utils "^1.0.2"
 
 filename-regex@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
 
 fileset@^2.0.2:
   version "2.0.3"
@@ -2408,8 +2408,8 @@
     uglify-js "~2.3"
 
 handlebars@^4.0.3:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7"
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.8.tgz#22b875cd3f0e6cbea30314f144e82bc7a72ff420"
   dependencies:
     async "^1.4.0"
     optimist "^0.6.1"
@@ -2626,8 +2626,8 @@
     extend "3"
 
 iconv-lite@^0.4.5:
-  version "0.4.16"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b"
+  version "0.4.17"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
 
 iconv-lite@0.4.15:
   version "0.4.15"
@@ -2830,8 +2830,8 @@
     is-extglob "^2.1.0"
 
 is-integer@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/is-integer/-/is-integer-1.0.6.tgz#5273819fada880d123e1ac00a938e7172dd8d95e"
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/is-integer/-/is-integer-1.0.7.tgz#6bde81aacddf78b659b6629d629cadc51a886d5c"
   dependencies:
     is-finite "^1.0.0"
 
@@ -2948,17 +2948,17 @@
   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
 
 istanbul-api@^1.1.1:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.7.tgz#f6f37f09f8002b130f891c646b70ee4a8e7345ae"
+  version "1.1.8"
+  resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.8.tgz#a844e55c6f9aeee292e7f42942196f60b23dc93e"
   dependencies:
     async "^2.1.4"
     fileset "^2.0.2"
-    istanbul-lib-coverage "^1.0.2"
-    istanbul-lib-hook "^1.0.5"
-    istanbul-lib-instrument "^1.7.0"
-    istanbul-lib-report "^1.0.0"
-    istanbul-lib-source-maps "^1.1.1"
-    istanbul-reports "^1.0.2"
+    istanbul-lib-coverage "^1.1.0"
+    istanbul-lib-hook "^1.0.6"
+    istanbul-lib-instrument "^1.7.1"
+    istanbul-lib-report "^1.1.0"
+    istanbul-lib-source-maps "^1.2.0"
+    istanbul-reports "^1.1.0"
     js-yaml "^3.7.0"
     mkdirp "^0.5.1"
     once "^1.4.0"
@@ -2972,49 +2972,50 @@
     loader-utils "^0.2.16"
     object-assign "^4.1.0"
 
-istanbul-lib-coverage@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.2.tgz#87a0c015b6910651cb3b184814dfb339337e25e1"
-
-istanbul-lib-hook@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.5.tgz#6ca3d16d60c5f4082da39f7c5cd38ea8a772b88e"
+istanbul-lib-coverage@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528"
+
+istanbul-lib-hook@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f"
   dependencies:
     append-transform "^0.4.0"
 
-istanbul-lib-instrument@^1.1.3, istanbul-lib-instrument@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.0.tgz#b8e0dc25709bb44e17336ab47b7bb5c97c23f659"
+istanbul-lib-instrument@^1.1.3, istanbul-lib-instrument@^1.7.1:
+  version "1.7.1"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360"
   dependencies:
     babel-generator "^6.18.0"
     babel-template "^6.16.0"
     babel-traverse "^6.18.0"
     babel-types "^6.18.0"
     babylon "^6.13.0"
-    istanbul-lib-coverage "^1.0.2"
+    istanbul-lib-coverage "^1.1.0"
     semver "^5.3.0"
 
-istanbul-lib-report@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0.tgz#d83dac7f26566b521585569367fe84ccfc7aaecb"
-  dependencies:
-    istanbul-lib-coverage "^1.0.2"
+istanbul-lib-report@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770"
+  dependencies:
+    istanbul-lib-coverage "^1.1.0"
     mkdirp "^0.5.1"
     path-parse "^1.0.5"
     supports-color "^3.1.2"
 
-istanbul-lib-source-maps@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.1.tgz#f8c8c2e8f2160d1d91526d97e5bd63b2079af71c"
-  dependencies:
-    istanbul-lib-coverage "^1.0.2"
+istanbul-lib-source-maps@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e"
+  dependencies:
+    debug "^2.6.3"
+    istanbul-lib-coverage "^1.1.0"
     mkdirp "^0.5.1"
-    rimraf "^2.4.4"
+    rimraf "^2.6.1"
     source-map "^0.5.3"
 
-istanbul-reports@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.2.tgz#4e8366abe6fa746cc1cd6633f108de12cc6ac6fa"
+istanbul-reports@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66"
   dependencies:
     handlebars "^4.0.3"
 
@@ -3044,10 +3045,6 @@
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.0.0.tgz#10aacd2c588c1ceb6a0b849f1a7f3f959f777c91"
 
-jju@^1.1.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/jju/-/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa"
-
 jodid25519@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
@@ -3109,12 +3106,6 @@
   version "0.5.4"
   resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
 
-json-parse-helpfulerror@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc"
-  dependencies:
-    jju "^1.1.0"
-
 json-schema@0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -3476,8 +3467,8 @@
     minimatch "^3.0.2"
 
 math-expression-evaluator@^1.2.14:
-  version "1.2.16"
-  resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9"
+  version "1.2.17"
+  resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
 
 media-typer@0.3.0:
   version "0.3.0"
@@ -3658,8 +3649,8 @@
     lower-case "^1.1.1"
 
 node-gyp@^3.3.1:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.0.tgz#7474f63a3a0501161dda0b6341f022f14c423fa6"
+  version "3.6.1"
+  resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.1.tgz#19561067ff185464aded478212681f47fd578cbc"
   dependencies:
     fstream "^1.0.0"
     glob "^7.0.3"
@@ -3721,7 +3712,7 @@
     tar "^2.2.1"
     tar-pack "^3.4.0"
 
-node-sass, node-sass@^4.3.0:
+node-sass@^4.3.0, node-sass@^4.5.2:
   version "4.5.2"
   resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.2.tgz#4012fa2bd129b1d6365117e88d9da0500d99da64"
   dependencies:
@@ -4495,6 +4486,10 @@
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
 
+querystringify@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
+
 querystringify@0.0.x:
   version "0.0.4"
   resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c"
@@ -4663,8 +4658,8 @@
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
 
 regenerator-runtime@^0.10.0:
-  version "0.10.4"
-  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.4.tgz#74cb6598d3ba2eb18694e968a40e2b3b4df9cf93"
+  version "0.10.5"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
 
 regenerator@0.8.40:
   version "0.8.40"
@@ -4703,8 +4698,8 @@
     regjsparser "^0.1.4"
 
 registry-auth-token@^3.0.1:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.0.tgz#57ae67347e73d96345ed1bc01294c7237c02aa63"
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006"
   dependencies:
     rc "^1.1.6"
     safe-buffer "^5.0.1"
@@ -4837,7 +4832,7 @@
   dependencies:
     align-text "^0.1.1"
 
-rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@2:
+rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@2:
   version "2.6.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
   dependencies:
@@ -4866,8 +4861,8 @@
   resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
 
 rxjs@^5.0.1, rxjs@^5.1.0, rxjs@^5.2.0:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d"
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.1.tgz#9ecc9e722247e4f4490d30a878577a3740fd0cb7"
   dependencies:
     symbol-observable "^1.0.1"
 
@@ -4876,12 +4871,12 @@
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
 
 sass-graph@^2.1.1:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.0.tgz#d59b85d27cab14eacd9946420c6aec617b8da42e"
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.2.tgz#f4d6c95b546ea2a09d14176d0fc1a07ee2b48354"
   dependencies:
     glob "^7.0.0"
     lodash "^4.0.0"
-    scss-tokenizer "^0.1.2"
+    scss-tokenizer "^0.2.1"
     yargs "^6.6.0"
 
 sass-loader@^6.0.3:
@@ -4918,11 +4913,10 @@
   dependencies:
     raw-loader "~0.5.1"
 
-scss-tokenizer@^0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.1.2.tgz#c5e3c705d8d8cf96f94a58dc64410f0f2d9889ce"
-  dependencies:
-    babel-core "^5.4.3"
+scss-tokenizer@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.1.tgz#07c0cc577bb7ab4d08fd900185adbf4bc844141d"
+  dependencies:
     js-base64 "^2.1.8"
     source-map "^0.4.2"
 
@@ -5076,8 +5070,8 @@
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
 
 silent-error@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.0.1.tgz#71b7d503d1c6f94882b51b56be879b113cb4822c"
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9"
   dependencies:
     debug "^2.2.0"
 
@@ -5190,8 +5184,8 @@
     source-map "0.1.32"
 
 source-map-support@^0.4.0, source-map-support@^0.4.2, source-map-support@~0.4.0:
-  version "0.4.14"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef"
+  version "0.4.15"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
   dependencies:
     source-map "^0.5.6"
 
@@ -5545,8 +5539,8 @@
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
 
 to-fast-properties@^1.0.0, to-fast-properties@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320"
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
 
 toposort@^1.0.0:
   version "1.0.3"
@@ -5748,10 +5742,10 @@
     prepend-http "^1.0.1"
 
 url-parse@^1.1.1:
-  version "1.1.8"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.8.tgz#7a65b3a8d57a1e86af6b4e2276e34774167c0156"
-  dependencies:
-    querystringify "0.0.x"
+  version "1.1.9"
+  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19"
+  dependencies:
+    querystringify "~1.0.0"
     requires-port "1.0.x"
 
 url-parse@1.0.x:
@@ -5865,9 +5859,9 @@
     chokidar "^1.4.3"
     graceful-fs "^4.1.2"
 
-"waves-ui@github:cannam/waves-ui":
-  version "0.3.0"
-  resolved "https://codeload.github.com/cannam/waves-ui/tar.gz/a01ee0d0351c51ad3e39885c59f237734d666c68"
+waves-ui-piper@piper-audio/waves-ui-piper:
+  version "0.4.0"
+  resolved "https://codeload.github.com/piper-audio/waves-ui-piper/tar.gz/94dd801c538c74b282d210ba0648a58476f42659"
   dependencies:
     babel-runtime "^5.8.12"
 
@@ -6091,8 +6085,8 @@
     lodash "^4.0.0"
 
 xmlbuilder@>=1.0.0:
-  version "8.2.2"
-  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.0.tgz#a9311b3f8509345700c49a8f79be06bcc5988d18"
 
 xmldom@^0.1.19:
   version "0.1.27"
@@ -6167,8 +6161,8 @@
   resolved "https://registry.yarnpkg.com/yn/-/yn-1.2.0.tgz#d237a4c533f279b2b89d3acac2db4b8c795e4a63"
 
 zone.js@^0.8.4:
-  version "0.8.9"
-  resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.9.tgz#34aaa9a3ec6d0e4acebd1b761adafa590473638b"
+  version "0.8.10"
+  resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.10.tgz#6d1b696492c029cdbe808e59e87bbd9491b98aa8"
 
 zone.js@0.8.7:
   version "0.8.7"