diff --git a/package-lock.json b/package-lock.json index d1dc294..4aa69e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,8 +7,7 @@ "@doodle3d/cal": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@doodle3d/cal/-/cal-0.0.8.tgz", - "integrity": "sha512-1qXg62qaZkc/zYPan37CXvUtaJk4aFVLz2y8cqnkN9Y0r1Er5soIZ5esMz4YYyjUrQGawBoYcGvatRALYnzlvg==", - "dev": true + "integrity": "sha512-1qXg62qaZkc/zYPan37CXvUtaJk4aFVLz2y8cqnkN9Y0r1Er5soIZ5esMz4YYyjUrQGawBoYcGvatRALYnzlvg==" }, "@doodle3d/clipper-js": { "version": "1.0.7", @@ -25,7 +24,6 @@ }, "@doodle3d/doodle3d-core": { "version": "github:doodle3d/doodle3d-core#36a73c233e569fca79d2059a50edb6bdb511aa58", - "dev": true, "requires": { "@doodle3d/cal": "0.0.8", "@doodle3d/clipper-js": "1.0.7", @@ -71,7 +69,6 @@ "version": "9.5.1", "resolved": "https://registry.npmjs.org/jss/-/jss-9.5.1.tgz", "integrity": "sha512-py//ogG1xeztpEDmosJtrkfUXibx3qiAr+1GQvfLHp7azpqkzTPLCnainDgH7Zn0q6S7rcM1eINrVT9n/r5f2w==", - "dev": true, "requires": { "is-in-browser": "1.1.3", "symbol-observable": "1.1.0", @@ -81,8 +78,7 @@ "symbol-observable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.1.0.tgz", - "integrity": "sha512-dQoid9tqQ+uotGhuTKEY11X4xhyYePVnqGSoSm3OGKh2E8LZ6RPULp1uXTctk33IeERlrRJYoVSBglsL05F5Uw==", - "dev": true + "integrity": "sha512-dQoid9tqQ+uotGhuTKEY11X4xhyYePVnqGSoSm3OGKh2E8LZ6RPULp1uXTctk33IeERlrRJYoVSBglsL05F5Uw==" } } }, @@ -90,7 +86,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/@doodle3d/fill-path/-/fill-path-1.0.7.tgz", "integrity": "sha512-4sdgWQ28JgRsmnyy1OnuKHE+DZ8kDGpluGqFmMASh2/6dlyjp2/oXnNEgNefG4/xiEitV8AtzEij9Bijh6yNRw==", - "dev": true, "requires": { "@doodle3d/clipper-js": "1.0.7" } @@ -98,14 +93,12 @@ "@doodle3d/potrace-js": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@doodle3d/potrace-js/-/potrace-js-0.0.6.tgz", - "integrity": "sha512-w1+sG3ClsSaQwo3ks5wl6QLe4aWEHBe8QePq0IeAcj+lypqo770sUcWVfEZWUFBumAhSlCJg3GRc8MsycHy8LA==", - "dev": true + "integrity": "sha512-w1+sG3ClsSaQwo3ks5wl6QLe4aWEHBe8QePq0IeAcj+lypqo770sUcWVfEZWUFBumAhSlCJg3GRc8MsycHy8LA==" }, "@doodle3d/threejs-export-obj": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@doodle3d/threejs-export-obj/-/threejs-export-obj-0.0.8.tgz", "integrity": "sha512-HVnJCvrjj3FqHJ5+CLVT1oZ0OjS2eOvrpMKjo71Jg7bdrusluIRlF7w9JdaoZs3ScWASAucu2cvTKJ+OAm3Rhw==", - "dev": true, "requires": { "jszip": "3.1.5", "three": "0.88.0" @@ -115,7 +108,6 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/@doodle3d/threejs-export-stl/-/threejs-export-stl-0.0.5.tgz", "integrity": "sha512-GeApmYL657Dug8/+WOHGGijJbQ52dN2AWkhz9FsCe9sehZRhCg0fOg4LKXNS0XGKWMQbyumlbrmCWZrK73sfJA==", - "dev": true, "requires": { "babel-preset-env": "1.6.1", "three": "0.88.0" @@ -125,7 +117,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@doodle3d/touch-events/-/touch-events-0.0.7.tgz", "integrity": "sha512-EpL8IEGKKy2gqFFlxA4n84IeAyPTrEzle0jwmRv+mmVBzwGr6xDl5Ga5vJIrg2WcYs4Xc7qWbiKSHEXvEpDLlg==", - "dev": true, "requires": { "eventdispatcher.js": "0.0.2", "pepjs": "0.4.3" @@ -135,7 +126,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz", "integrity": "sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ==", - "dev": true, "requires": { "xtend": "4.0.1" } @@ -231,14 +221,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, "requires": { "delegates": "1.0.0", "readable-stream": "2.3.3" @@ -256,8 +244,7 @@ "argsarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", - "integrity": "sha1-bnIHtOzbObCviDA/pa4ivajfYcs=", - "dev": true + "integrity": "sha1-bnIHtOzbObCviDA/pa4ivajfYcs=" }, "arr-diff": { "version": "2.0.0", @@ -331,8 +318,7 @@ "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "asn1.js": { "version": "4.9.2", @@ -357,8 +343,7 @@ "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 + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, "async": { "version": "2.6.0", @@ -378,26 +363,22 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "attempt-x": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/attempt-x/-/attempt-x-1.1.1.tgz", - "integrity": "sha512-hIp37ojJRRW8ExWSxxLpkDHUufk/DFfsb7/cUC1cVbBg7JV4gJTkCTRa44dlL9e5jx1P3VNrjL7QOQfi4MyltA==", - "dev": true + "integrity": "sha512-hIp37ojJRRW8ExWSxxLpkDHUufk/DFfsb7/cUC1cVbBg7JV4gJTkCTRa44dlL9e5jx1P3VNrjL7QOQfi4MyltA==" }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" }, "aws4": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, "babel-cli": { "version": "6.24.1", @@ -490,7 +471,6 @@ "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=", - "dev": true, "requires": { "babel-helper-explode-assignable-expression": "6.24.1", "babel-runtime": "6.26.0", @@ -542,7 +522,6 @@ "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=", - "dev": true, "requires": { "babel-helper-hoist-variables": "6.24.1", "babel-runtime": "6.26.0", @@ -554,7 +533,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, "requires": { "babel-helper-function-name": "6.24.1", "babel-runtime": "6.26.0", @@ -566,7 +544,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.4.1", "regenerator-runtime": "0.11.0" @@ -576,7 +553,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -587,8 +563,7 @@ "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, @@ -596,7 +571,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.25.0", @@ -640,7 +614,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.25.0" @@ -650,7 +623,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.25.0" @@ -660,7 +632,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.26.0", @@ -671,7 +642,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.4.1", "regenerator-runtime": "0.11.0" @@ -681,7 +651,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -692,8 +661,7 @@ "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, @@ -701,7 +669,6 @@ "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=", - "dev": true, "requires": { "babel-helper-function-name": "6.24.1", "babel-runtime": "6.26.0", @@ -714,7 +681,6 @@ "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=", - "dev": true, "requires": { "babel-helper-optimise-call-expression": "6.24.1", "babel-messages": "6.23.0", @@ -757,7 +723,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -765,8 +730,7 @@ "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=", - "dev": true + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, "babel-plugin-syntax-async-generators": { "version": "6.13.0", @@ -806,8 +770,7 @@ "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=", - "dev": true + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, "babel-plugin-syntax-export-extensions": { "version": "6.13.0", @@ -842,8 +805,7 @@ "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=", - "dev": true + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" }, "babel-plugin-transform-async-generator-functions": { "version": "6.24.1", @@ -860,7 +822,6 @@ "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=", - "dev": true, "requires": { "babel-helper-remap-async-to-generator": "6.24.1", "babel-plugin-syntax-async-functions": "6.13.0", @@ -916,7 +877,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -925,7 +885,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -934,7 +893,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-template": "6.26.0", @@ -947,7 +905,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -958,7 +915,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.4.1", "regenerator-runtime": "0.11.0" @@ -968,7 +924,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -981,7 +936,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -998,7 +952,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -1009,14 +962,12 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, @@ -1024,7 +975,6 @@ "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=", - "dev": true, "requires": { "babel-helper-define-map": "6.26.0", "babel-helper-function-name": "6.24.1", @@ -1041,7 +991,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-template": "6.25.0" @@ -1051,7 +1000,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -1060,7 +1008,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.25.0" @@ -1070,7 +1017,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -1079,7 +1025,6 @@ "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=", - "dev": true, "requires": { "babel-helper-function-name": "6.24.1", "babel-runtime": "6.26.0", @@ -1090,7 +1035,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -1099,7 +1043,6 @@ "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=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", "babel-runtime": "6.26.0", @@ -1110,7 +1053,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", - "dev": true, "requires": { "babel-plugin-transform-strict-mode": "6.24.1", "babel-runtime": "6.26.0", @@ -1122,7 +1064,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -1133,7 +1074,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.4.1", "regenerator-runtime": "0.11.0" @@ -1143,7 +1083,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -1156,7 +1095,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -1173,7 +1111,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -1184,14 +1121,12 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" } } }, @@ -1199,7 +1134,6 @@ "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=", - "dev": true, "requires": { "babel-helper-hoist-variables": "6.24.1", "babel-runtime": "6.26.0", @@ -1210,7 +1144,6 @@ "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=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "6.24.1", "babel-runtime": "6.26.0", @@ -1221,7 +1154,6 @@ "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=", - "dev": true, "requires": { "babel-helper-replace-supers": "6.24.1", "babel-runtime": "6.26.0" @@ -1231,7 +1163,6 @@ "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=", - "dev": true, "requires": { "babel-helper-call-delegate": "6.24.1", "babel-helper-get-function-arity": "6.24.1", @@ -1245,7 +1176,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.25.0" @@ -1255,7 +1185,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -1264,7 +1193,6 @@ "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=", - "dev": true, "requires": { "babel-helper-regex": "6.26.0", "babel-runtime": "6.26.0", @@ -1275,7 +1203,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -1284,7 +1211,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -1293,7 +1219,6 @@ "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=", - "dev": true, "requires": { "babel-helper-regex": "6.26.0", "babel-runtime": "6.26.0", @@ -1304,7 +1229,6 @@ "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=", - "dev": true, "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", "babel-plugin-syntax-exponentiation-operator": "6.13.0", @@ -1413,7 +1337,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, "requires": { "regenerator-transform": "0.10.1" } @@ -1431,7 +1354,6 @@ "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=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.25.0" @@ -1441,7 +1363,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "core-js": "2.5.3", @@ -1452,7 +1373,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.5.3", "regenerator-runtime": "0.11.1" @@ -1461,16 +1381,14 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" } } }, "core-js": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", - "dev": true + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" } } }, @@ -1478,7 +1396,6 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", - "dev": true, "requires": { "babel-plugin-check-es2015-constants": "6.22.0", "babel-plugin-syntax-trailing-function-commas": "6.22.0", @@ -1711,7 +1628,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -1720,14 +1636,12 @@ "bezier-js": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.2.5.tgz", - "integrity": "sha512-HGh+GevPguxrAmnWF2/A+8c8FEatnKcE6WttpYWA5fn1CfpJz4reFbr11DuyFs2gwaIo9vF7aVXW2xg1iaqvyg==", - "dev": true + "integrity": "sha512-HGh+GevPguxrAmnWF2/A+8c8FEatnKcE6WttpYWA5fn1CfpJz4reFbr11DuyFs2gwaIo9vF7aVXW2xg1iaqvyg==" }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, "binary-extensions": { "version": "1.8.0", @@ -1738,14 +1652,12 @@ "bindings": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", - "dev": true + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" }, "bl": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", - "dev": true, "requires": { "readable-stream": "2.3.3" } @@ -1759,8 +1671,7 @@ "blueimp-canvas-to-blob": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.14.0.tgz", - "integrity": "sha512-i6I2CiX1VR8YwUNYBo+dM8tg89ns4TTHxSpWjaDeHKcYS3yFalpLCwDaY21/EsJMufLy2tnG4j0JN5L8OVNkKQ==", - "dev": true + "integrity": "sha512-i6I2CiX1VR8YwUNYBo+dM8tg89ns4TTHxSpWjaDeHKcYS3yFalpLCwDaY21/EsJMufLy2tnG4j0JN5L8OVNkKQ==" }, "bn.js": { "version": "4.11.8", @@ -1821,7 +1732,6 @@ "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, "requires": { "hoek": "2.16.3" } @@ -1937,7 +1847,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.8.0.tgz", "integrity": "sha512-iiWHM1Et6Q4TQpB7Ar6pxuM3TNMXasVJY4Y/oh3q38EwR3Z+IdZ9MyVf7PI4MJFB4xpwMcZgs9bEUnPG2E3TCA==", - "dev": true, "requires": { "caniuse-lite": "1.0.30000760", "electron-to-chromium": "1.3.27" @@ -1957,14 +1866,12 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-from": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.1.tgz", "integrity": "sha1-V7GLHaChnsBvM4N6UnWiQjUb114=", - "dev": true, "requires": { "is-array-buffer-x": "1.7.0" } @@ -2002,8 +1909,7 @@ "cached-constructors-x": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cached-constructors-x/-/cached-constructors-x-1.0.0.tgz", - "integrity": "sha512-JVP0oilYlPgBTD8bkQ+of7hSIJRtydCCJiMtzdRMXVQ98gdj0NyrJTZzbu5wtlO26Ev/1HXRTtbBNsVlLJ3+3A==", - "dev": true + "integrity": "sha512-JVP0oilYlPgBTD8bkQ+of7hSIJRtydCCJiMtzdRMXVQ98gdj0NyrJTZzbu5wtlO26Ev/1HXRTtbBNsVlLJ3+3A==" }, "camel-case": { "version": "3.0.0", @@ -2042,14 +1948,12 @@ "caniuse-lite": { "version": "1.0.30000760", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000760.tgz", - "integrity": "sha1-7HIDlXQvHH7IlH/W3SYE53qPmP8=", - "dev": true + "integrity": "sha1-7HIDlXQvHH7IlH/W3SYE53qPmP8=" }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "center-align": { "version": "0.1.3", @@ -2103,8 +2007,7 @@ "chownr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "cipher-base": { "version": "1.0.4", @@ -2119,8 +2022,7 @@ "classnames": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", - "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=", - "dev": true + "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" }, "clean-css": { "version": "4.1.9", @@ -2145,26 +2047,22 @@ "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 + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "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 + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "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, "requires": { "delayed-stream": "1.0.0" } @@ -2240,8 +2138,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "constants-browserify": { "version": "1.0.0", @@ -2287,8 +2184,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-ecdh": { "version": "4.0.0", @@ -2351,7 +2247,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, "requires": { "boom": "2.10.1" } @@ -2422,7 +2317,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, "requires": { "es5-ext": "0.10.35" } @@ -2431,7 +2325,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "1.0.0" }, @@ -2439,8 +2332,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, @@ -2472,20 +2364,17 @@ "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, "deep-extend": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "deferred-leveldown": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-2.0.3.tgz", "integrity": "sha512-8c2Hv+vIwKNc7qqy4zE3t5DIsln+FQnudcyjLYstHwLFg7XnXZT/H8gQb8lj6xi8xqGM0Bz633ZWcCkonycBTA==", - "dev": true, "requires": { "abstract-leveldown": "3.0.0" } @@ -2525,14 +2414,12 @@ "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 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depd": { "version": "1.1.1", @@ -2681,14 +2568,12 @@ "double-ended-queue": { "version": "2.1.0-0", "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=", - "dev": true + "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -2703,8 +2588,7 @@ "electron-to-chromium": { "version": "1.3.27", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz", - "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=", - "dev": true + "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=" }, "elliptic": { "version": "6.4.0", @@ -2724,8 +2608,7 @@ "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" }, "encodeurl": { "version": "1.0.1", @@ -2745,7 +2628,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-3.0.1.tgz", "integrity": "sha512-uvx+39YNqiPLqhXAvOSGBVy/oYBh4p2ShwG9YFCipwgfOhnVIOxuOPE3R9dEGM44bn0VHIrC3ojXq6lNf2ulwg==", - "dev": true, "requires": { "abstract-leveldown": "3.0.0", "level-codec": "8.0.0", @@ -2755,8 +2637,7 @@ "level-codec": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-8.0.0.tgz", - "integrity": "sha512-gNZlo1HRHz0BWxzGCyNf7xntAs2HKOPvvRBWtXsoDvEX4vMYnSTBS6ZnxoaiX7nhxSBPpegRa8CQ/hnfGBKk3Q==", - "dev": true + "integrity": "sha512-gNZlo1HRHz0BWxzGCyNf7xntAs2HKOPvvRBWtXsoDvEX4vMYnSTBS6ZnxoaiX7nhxSBPpegRa8CQ/hnfGBKk3Q==" } } }, @@ -2764,7 +2645,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, "requires": { "once": "1.4.0" } @@ -2773,7 +2653,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", "integrity": "sha1-MgA/P0OKKwFDFoE3+PpumGbIHtU=", - "dev": true, "requires": { "write-stream": "0.4.3" } @@ -2800,7 +2679,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true, "requires": { "prr": "0.0.0" } @@ -2842,7 +2720,6 @@ "version": "0.10.35", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", - "dev": true, "requires": { "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" @@ -2851,14 +2728,12 @@ "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, "requires": { "d": "1.0.0", "es5-ext": "0.10.35", @@ -2882,8 +2757,7 @@ "es6-promise": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", - "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", - "dev": true + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" }, "es6-set": { "version": "0.1.5", @@ -2902,7 +2776,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, "requires": { "d": "1.0.0", "es5-ext": "0.10.35" @@ -2980,7 +2853,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, "requires": { "d": "1.0.0", "es5-ext": "0.10.35" @@ -2989,8 +2861,7 @@ "eventdispatcher.js": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/eventdispatcher.js/-/eventdispatcher.js-0.0.2.tgz", - "integrity": "sha1-wntZzkEEa2iUEu3M/UzYr8ZM2DU=", - "dev": true + "integrity": "sha1-wntZzkEEa2iUEu3M/UzYr8ZM2DU=" }, "eventemitter3": { "version": "1.2.0", @@ -3059,8 +2930,7 @@ "expand-template": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", - "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", - "dev": true + "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==" }, "express": { "version": "4.16.2", @@ -3120,8 +2990,7 @@ "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "extglob": { "version": "0.3.2", @@ -3135,8 +3004,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "1.0.0", @@ -3147,8 +3015,7 @@ "fast-future": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz", - "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=", - "dev": true + "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -3190,7 +3057,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, "requires": { "pend": "1.2.0" } @@ -3269,8 +3135,7 @@ "fit-curve": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/fit-curve/-/fit-curve-0.1.6.tgz", - "integrity": "sha1-w72+b1oqO+j4Aerr2kBpGRJWqVs=", - "dev": true + "integrity": "sha1-w72+b1oqO+j4Aerr2kBpGRJWqVs=" }, "for-in": { "version": "1.0.2", @@ -3296,14 +3161,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", @@ -4243,7 +4106,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, "requires": { "aproba": "1.2.0", "console-control-strings": "1.1.0", @@ -4259,7 +4121,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4290,7 +4151,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "1.0.0" }, @@ -4298,16 +4158,14 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { "version": "7.1.2", @@ -4364,7 +4222,6 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/google-fonts-webpack-plugin/-/google-fonts-webpack-plugin-0.4.4.tgz", "integrity": "sha512-+e2D9/DVBG9EDydRovzoqMZ658SsTBGbC0c65GyZqkwNvdj8vRSYQKXqbz7/yt7QaXsCPT1MpH45r3ivWOitcw==", - "dev": true, "requires": { "lodash": "4.17.4", "node-fetch": "1.7.3", @@ -4375,14 +4232,12 @@ "source-list-map": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=", - "dev": true + "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=" }, "webpack-sources": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", - "dev": true, "requires": { "source-list-map": "1.1.2", "source-map": "0.5.6" @@ -4405,14 +4260,12 @@ "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 + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" }, "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, "requires": { "ajv": "4.11.8", "har-schema": "1.0.5" @@ -4422,7 +4275,6 @@ "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, "requires": { "co": "4.6.0", "json-stable-stringify": "1.0.1" @@ -4457,7 +4309,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/has-own-property-x/-/has-own-property-x-3.2.0.tgz", "integrity": "sha512-HtRQTYpRFz/YVaQ7jh2mU5iorMAxFcML9FNOLMI1f8VNJ2K0hpOlXoi1a+nmVl6oUcGnhd6zYOFAVe7NUFStyQ==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "to-object-x": "1.5.0", @@ -4467,14 +4318,12 @@ "has-symbol-support-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", - "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==", - "dev": true + "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==" }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, "requires": { "has-symbol-support-x": "1.4.1" } @@ -4482,8 +4331,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hash-base": { "version": "2.0.2", @@ -4508,7 +4356,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -4536,8 +4383,7 @@ "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "hoist-non-react-statics": { "version": "1.2.0", @@ -4750,7 +4596,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.1", @@ -4782,8 +4627,7 @@ "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, "import-local": { "version": "0.1.1", @@ -4819,7 +4663,6 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.7.1.tgz", "integrity": "sha1-8gS180cCoywdt9SNidXoZ6BEElM=", - "dev": true, "requires": { "loader-utils": "1.1.0", "source-map": "0.5.6" @@ -4843,8 +4686,7 @@ "infinity-x": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/infinity-x/-/infinity-x-1.0.0.tgz", - "integrity": "sha512-wjy2TupBtZ+aAniKt+xs/PO0xOkuaL6wBysUKbgD7aL1PMW/qY5xXDG59zXZ7dU+gk3zwXOu4yIEWPCEFBTgHQ==", - "dev": true + "integrity": "sha512-wjy2TupBtZ+aAniKt+xs/PO0xOkuaL6wBysUKbgD7aL1PMW/qY5xXDG59zXZ7dU+gk3zwXOu4yIEWPCEFBTgHQ==" }, "inflight": { "version": "1.0.6", @@ -4859,14 +4701,12 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inline-style-prefixer": { "version": "3.0.8", @@ -4922,7 +4762,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/is-array-buffer-x/-/is-array-buffer-x-1.7.0.tgz", "integrity": "sha512-ufSZRMY2WZX5xyNvk0NOZAG7cgi35B/sGQDGqv8w0X7MoQ2GC9vedanJhuYTPaC4PUCqLQsda1w7NF+dPZmAJw==", - "dev": true, "requires": { "attempt-x": "1.1.1", "has-to-string-tag-x": "1.4.1", @@ -4970,8 +4809,7 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, "is-dotfile": { "version": "1.0.3", @@ -5004,7 +4842,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-falsey-x/-/is-falsey-x-1.0.1.tgz", "integrity": "sha512-XWNZC4A+3FX1ECoMjspuEFgSdio82IWjqY/suE0gZ10QA7nzHd/KraRq7Tc5VEHtFRgTRyTdY6W+ykPrDnyoAQ==", - "dev": true, "requires": { "to-boolean-x": "1.0.1" } @@ -5022,7 +4859,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-finite-x/-/is-finite-x-3.0.2.tgz", "integrity": "sha512-HyFrxJZsgmP5RtR1PVlVvHSP4VslZOqr4uoq4x3rDrSOFaYp4R9tfmiWtAzQxPzixXhac3cYEno3NuVn0OHk2Q==", - "dev": true, "requires": { "infinity-x": "1.0.0", "is-nan-x": "1.0.1" @@ -5032,7 +4868,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -5046,7 +4881,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/is-function-x/-/is-function-x-3.3.0.tgz", "integrity": "sha512-SreSSU1dlgYaXR5c0mm4qJHKYHIiGiEY+7Cd8/aRLLoMP/VvofD2XcWgBnP833ajpU5XzXbUSpfysnfKZLJFlg==", - "dev": true, "requires": { "attempt-x": "1.1.1", "has-to-string-tag-x": "1.4.1", @@ -5076,7 +4910,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-index-x/-/is-index-x-1.1.0.tgz", "integrity": "sha512-qULKLMepQLGC8rSVdi8uF2vI4LiDrU9XSDg1D+Aa657GIB7GV1jHpga7uXgQvkt/cpQ5mVBHUFTpSehYSqT6+A==", - "dev": true, "requires": { "math-clamp-x": "1.2.0", "max-safe-integer": "1.0.1", @@ -5088,14 +4921,12 @@ "is-nan-x": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-nan-x/-/is-nan-x-1.0.1.tgz", - "integrity": "sha512-VfNJgfuT8USqKCYQss8g7sFvCzDnL+OOVMQoXhVoulZAyp0ZTj3oyZaaPrn2dxepAkKSQI2BiKHbBabX1DqVtw==", - "dev": true + "integrity": "sha512-VfNJgfuT8USqKCYQss8g7sFvCzDnL+OOVMQoXhVoulZAyp0ZTj3oyZaaPrn2dxepAkKSQI2BiKHbBabX1DqVtw==" }, "is-nil-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/is-nil-x/-/is-nil-x-1.4.1.tgz", "integrity": "sha512-cfTKWI5iSR04SSCzzugTH5tS2rYG7kwI8yl/AqWkyuxZ7k55cbA47Y7Lezdg1N9aaELd+UxLg628bdQeNQ6BUw==", - "dev": true, "requires": { "lodash.isnull": "3.0.0", "validate.io-undefined": "1.0.3" @@ -5114,7 +4945,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/is-object-like-x/-/is-object-like-x-1.6.0.tgz", "integrity": "sha512-mc3dBMv1jEOdk0f1i2RkJFsZDux0MuHqGwHOoRo770ShUOf4VE6tWThAW8dAZARr9a5RN+iNX1yzMDA5ad1clQ==", - "dev": true, "requires": { "is-function-x": "3.3.0", "is-primitive": "2.0.0" @@ -5168,14 +4998,12 @@ "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-regex": { "version": "1.0.4", @@ -5194,20 +5022,17 @@ "is-string": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", - "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", - "dev": true + "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=" }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", @@ -5224,8 +5049,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -5254,8 +5078,7 @@ "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 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-tokens": { "version": "3.0.2", @@ -5276,7 +5099,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, "optional": true }, "jsesc": { @@ -5294,8 +5116,7 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.3.1", @@ -5307,7 +5128,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, "requires": { "jsonify": "0.0.0" } @@ -5315,8 +5135,7 @@ "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 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { "version": "3.3.2", @@ -5327,20 +5146,17 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -5351,8 +5167,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, @@ -5442,7 +5257,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", - "dev": true, "requires": { "core-js": "2.3.0", "es6-promise": "3.0.2", @@ -5454,14 +5268,12 @@ "core-js": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", - "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", - "dev": true + "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=" }, "readable-stream": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -5474,8 +5286,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, @@ -5518,7 +5329,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/level/-/level-2.1.1.tgz", "integrity": "sha512-jhsItEs/L5bf5ctKsvIPcMzeh4nwXxnL3Tsxm4E9My07jcFfqEYwKP57Y9AZu7tmtECdyK6bvCqoClwuOBuY9w==", - "dev": true, "requires": { "level-packager": "2.1.0", "leveldown": "2.1.1" @@ -5527,14 +5337,12 @@ "level-codec": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", - "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", - "dev": true + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" }, "level-errors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.1.2.tgz", "integrity": "sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w==", - "dev": true, "requires": { "errno": "0.1.4" } @@ -5543,7 +5351,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.0.tgz", "integrity": "sha512-TWOYw8HR5mhj6xwoVLo0yu26RPL6v28KgvhK1kY1CJf9LyL+rJXjx99zhORTYhN9ysOBIH+iaxAiqRteA+C1/g==", - "dev": true, "requires": { "inherits": "2.0.3", "readable-stream": "2.3.3", @@ -5554,7 +5361,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-2.1.0.tgz", "integrity": "sha512-I97zvGOZ6fJ9OFfYv+QmgBpDWbC+UaP5ERJ3oraTyk1v+ABAL4tazris5ym5qL2iLe+qNjXNM/iP8LQcoZMEWw==", - "dev": true, "requires": { "encoding-down": "3.0.1", "levelup": "2.0.1" @@ -5564,7 +5370,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", "integrity": "sha1-P3+7Z5pVE3wP6zA97nZuEu4Twdw=", - "dev": true, "requires": { "end-stream": "0.1.0" } @@ -5573,7 +5378,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-2.1.1.tgz", "integrity": "sha512-JNMCTSchq1YtQLMGePmT07UE7hIIYR4GHpZI7+nUXbM9XgNtRAwcBGhnyJyITwpTILTkUcNPBKZ9lZmTUj2E3g==", - "dev": true, "requires": { "abstract-leveldown": "3.0.0", "bindings": "1.3.0", @@ -5585,8 +5389,7 @@ "nan": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" } } }, @@ -5594,7 +5397,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/levelup/-/levelup-2.0.1.tgz", "integrity": "sha1-PckbPmMtN8nlRiOchkEYsATJ+GA=", - "dev": true, "requires": { "deferred-leveldown": "2.0.3", "level-errors": "1.1.2", @@ -5606,7 +5408,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "dev": true, "requires": { "immediate": "3.0.6" } @@ -5633,7 +5434,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, "requires": { "big.js": "3.2.0", "emojis-list": "2.1.0", @@ -5666,14 +5466,12 @@ "lodash-es": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", - "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=", - "dev": true + "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" }, "lodash.isnull": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash.isnull/-/lodash.isnull-3.0.0.tgz", - "integrity": "sha1-+vvlnqHcon7teGU0A53YTC4HxW4=", - "dev": true + "integrity": "sha1-+vvlnqHcon7teGU0A53YTC4HxW4=" }, "lodash.merge": { "version": "4.6.0", @@ -5735,7 +5533,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, "requires": { "es5-ext": "0.10.35" } @@ -5743,8 +5540,7 @@ "ltgt": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.0.tgz", - "integrity": "sha1-tlul/LNJopkkyOMz98alVi8uSEI=", - "dev": true + "integrity": "sha1-tlul/LNJopkkyOMz98alVi8uSEI=" }, "map-obj": { "version": "1.0.1", @@ -5770,11 +5566,53 @@ "warning": "3.0.0" } }, + "material-ui-icons": { + "version": "1.0.0-beta.17", + "resolved": "https://registry.npmjs.org/material-ui-icons/-/material-ui-icons-1.0.0-beta.17.tgz", + "integrity": "sha1-XxmvVKLZnu7zR6VUFKaFPhyFDcM=", + "requires": { + "recompose": "0.26.0" + } + }, + "material-ui-textfield-icon": { + "version": "0.2.2-1", + "resolved": "https://registry.npmjs.org/material-ui-textfield-icon/-/material-ui-textfield-icon-0.2.2-1.tgz", + "integrity": "sha512-hvRDPs2YqIUjbkAIWmEHAvRtDXSz5miBWnZiAsRSZFMvjjbtCi6t1IHMrhKkzHRHjdEQkLPs37e/9HezZxBAxg==", + "requires": { + "material-ui": "0.19.4", + "react": "15.6.2", + "react-dom": "15.6.2" + }, + "dependencies": { + "react": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", + "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", + "requires": { + "create-react-class": "15.6.2", + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-dom": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", + "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + } + } + }, "math-clamp-x": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/math-clamp-x/-/math-clamp-x-1.2.0.tgz", "integrity": "sha512-tqpjpBcIf9UulApz3EjWXqTZpMlr2vLN9PryC9ghoyCuRmqZaf3JJhPddzgQpJnKLi2QhoFnvKBFtJekAIBSYg==", - "dev": true, "requires": { "to-number-x": "2.0.0" } @@ -5783,7 +5621,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/math-sign-x/-/math-sign-x-3.0.0.tgz", "integrity": "sha512-OzPas41Pn4d16KHnaXmGxxY3/l3zK4OIXtmIwdhgZsxz4FDDcNnbrABYPg2vGfxIkaT9ezGnzDviRH7RfF44jQ==", - "dev": true, "requires": { "is-nan-x": "1.0.1", "to-number-x": "2.0.0" @@ -5792,8 +5629,7 @@ "max-safe-integer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/max-safe-integer/-/max-safe-integer-1.0.1.tgz", - "integrity": "sha1-84BgvixWPYwC5tSK85Ei/YO29BA=", - "dev": true + "integrity": "sha1-84BgvixWPYwC5tSK85Ei/YO29BA=" }, "md5.js": { "version": "1.3.4", @@ -5836,7 +5672,6 @@ "version": "0.3.10", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", "integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=", - "dev": true, "requires": { "d": "0.1.1", "es5-ext": "0.10.35", @@ -5851,7 +5686,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", - "dev": true, "requires": { "es5-ext": "0.10.35" } @@ -5860,7 +5694,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", - "dev": true, "requires": { "d": "0.1.1", "es5-ext": "0.10.35", @@ -5871,7 +5704,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", - "dev": true, "requires": { "d": "0.1.1", "es5-ext": "0.10.35" @@ -5881,7 +5713,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", - "dev": true, "requires": { "d": "0.1.1", "es5-ext": "0.10.35", @@ -6033,14 +5864,12 @@ "mime-db": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", - "dev": true + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" }, "mime-types": { "version": "2.1.17", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", - "dev": true, "requires": { "mime-db": "1.30.0" } @@ -6075,14 +5904,12 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" } @@ -6118,8 +5945,7 @@ "nan-x": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nan-x/-/nan-x-1.0.0.tgz", - "integrity": "sha512-yw4Fhe2/UTzanQ4f0yHWkRnfTuHZFAi4GZDjXS4G+qv5BqXTqPJBbSxpa7MyyW9v4Y4ZySZQik1vcbNkhdnIOg==", - "dev": true + "integrity": "sha512-yw4Fhe2/UTzanQ4f0yHWkRnfTuHZFAi4GZDjXS4G+qv5BqXTqPJBbSxpa7MyyW9v4Y4ZySZQik1vcbNkhdnIOg==" }, "ncname": { "version": "1.0.0", @@ -6139,8 +5965,7 @@ "next-tick": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", - "integrity": "sha1-ddpKkn7liH45BliABltzNkE7MQ0=", - "dev": true + "integrity": "sha1-ddpKkn7liH45BliABltzNkE7MQ0=" }, "no-case": { "version": "2.3.2", @@ -6155,7 +5980,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.2.tgz", "integrity": "sha512-hmUtb8m75RSi7N+zZLYqe75XDvZB+6LyTBPkj2DConvNgQet2e3BIqEwe1LLvqMrfyjabuT5ZOrTioLCH1HTdA==", - "dev": true, "requires": { "semver": "5.4.1" } @@ -6209,8 +6033,7 @@ "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "dev": true + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, "normalize-jss": { "version": "4.0.0", @@ -6243,7 +6066,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-space-x/-/normalize-space-x-3.0.0.tgz", "integrity": "sha512-tbCJerqZCCHPst4rRKgsTanLf45fjOyeAU5zE3mhDxJtFJKt66q39g2XArWhXelgTFVib8mNBUm6Wrd0LxYcfQ==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "trim-x": "3.0.0", @@ -6253,8 +6075,7 @@ "normalize-wheel": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", - "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=", - "dev": true + "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" }, "npm-run-path": { "version": "2.0.2", @@ -6269,7 +6090,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -6289,14 +6109,12 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { "version": "4.1.1", @@ -6307,7 +6125,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/object-get-own-property-descriptor-x/-/object-get-own-property-descriptor-x-3.2.0.tgz", "integrity": "sha512-Z/0fIrptD9YuzN+SNK/1kxAEaBcPQM4gSrtOSMSi9eplnL/AbyQcAyAlreAoAzmBon+DQ1Z+AdhxyQSvav5Fyg==", - "dev": true, "requires": { "attempt-x": "1.1.1", "has-own-property-x": "3.2.0", @@ -6362,7 +6179,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -6406,8 +6222,7 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", @@ -6467,8 +6282,7 @@ "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" }, "param-case": { "version": "2.1.1", @@ -6508,7 +6322,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-int-x/-/parse-int-x-2.0.0.tgz", "integrity": "sha512-NIMm52gmd1+0qxJK8lV3OZ4zzWpRH1xcz9xCHXl+DNzddwUdS4NEtd7BmTeK7iCIXoaK5e6BoDMHgieH2eNIhg==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "nan-x": "1.0.0", @@ -6595,20 +6408,17 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "pepjs": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/pepjs/-/pepjs-0.4.3.tgz", - "integrity": "sha1-FggOlwqud5kTdWwtrviOqnSG30E=", - "dev": true + "integrity": "sha1-FggOlwqud5kTdWwtrviOqnSG30E=" }, "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 + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" }, "pify": { "version": "2.3.0", @@ -6663,7 +6473,6 @@ "version": "6.4.1", "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-6.4.1.tgz", "integrity": "sha512-7YrhsBXbQh/iPA8O5Nzixi9QigaQJjqbbCFr+D7Kc258oeXNW9a0t/tOME1Lh84TJiFRuN9982FGVnrBrUhLiA==", - "dev": true, "requires": { "argsarray": "0.0.1", "buffer-from": "0.1.1", @@ -6683,7 +6492,7 @@ "request": "2.80.0", "spark-md5": "3.0.0", "through2": "2.0.3", - "uuid": "3.1.0", + "uuid": "3.2.0", "vuvuzela": "1.0.3" }, "dependencies": { @@ -6691,7 +6500,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/debug/-/debug-3.0.1.tgz", "integrity": "sha512-6nVc6S36qbt/mutyt+UGMnawAMrPDZUPQjRZI3FS9tCtDRhvxJbK79unYBLPi+z5SLXQ3ftoVBFCblQtNSls8w==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -6699,14 +6507,12 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.0.33", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -6717,14 +6523,12 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "dev": true + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.0.tgz", + "integrity": "sha512-qC0vMFX6q6ee8JaoTF2Om1uL8KAV1ATUjVaHRxLiPJkIsp8JZl6ZjG0MIB+twZFLbi1vXj30rqj4zlqYiOS9xg==" } } }, @@ -6732,7 +6536,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.4.1.tgz", "integrity": "sha512-99TyEFYTTkBWANT+mwSptmLb9ZCLQ6qKIUE36fXSIOtShB0JNprL2hzBD8F1yIuT9btjFrFEwbRHXhqDi1HmRA==", - "dev": true, "requires": { "expand-template": "1.1.0", "github-from-package": "0.0.0", @@ -6753,8 +6556,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, @@ -6777,8 +6579,7 @@ "private": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", - "dev": true + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" }, "process": { "version": "0.11.10", @@ -6789,8 +6590,7 @@ "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 + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "promise": { "version": "7.3.1", @@ -6814,7 +6614,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/property-is-enumerable-x/-/property-is-enumerable-x-1.1.0.tgz", "integrity": "sha512-22cKy3w3OpRswU6to9iKWDDlg+F9vF2REcwGlGW23jyLjHb1U/jJEWA44sWupOnkhGfDgotU6Lw+N2oyhNi+5A==", - "dev": true, "requires": { "to-object-x": "1.5.0", "to-property-key-x": "2.0.2" @@ -6838,8 +6637,7 @@ "prr": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" }, "pseudomap": { "version": "1.0.2", @@ -6864,7 +6662,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, "requires": { "end-of-stream": "1.4.1", "once": "1.4.0" @@ -6873,8 +6670,7 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qs": { "version": "6.5.1", @@ -6914,7 +6710,6 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", - "dev": true, "requires": { "performance-now": "2.1.0" }, @@ -6922,16 +6717,14 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" } } }, "ramda": { "version": "0.21.0", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", - "dev": true + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=" }, "randomatic": { "version": "1.1.7", @@ -7021,7 +6814,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.3.tgz", "integrity": "sha1-UVdakA+N1oOBxxC0cSwhVMPiA1s=", - "dev": true, "requires": { "deep-extend": "0.4.2", "ini": "1.3.5", @@ -7032,8 +6824,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, @@ -7052,7 +6843,6 @@ "version": "15.6.2", "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.6.2.tgz", "integrity": "sha1-5TdTxbNIh5dFEMiC1/sHWFHV5QQ=", - "dev": true, "requires": { "fbjs": "0.8.16", "object-assign": "4.1.1" @@ -7112,7 +6902,6 @@ "version": "0.2.16", "resolved": "https://registry.npmjs.org/react-notification-system/-/react-notification-system-0.2.16.tgz", "integrity": "sha1-m52iCw00eGtgBXxStCUW6hKVN0o=", - "dev": true, "requires": { "create-react-class": "15.6.2", "object-assign": "4.1.1", @@ -7123,7 +6912,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-notification-system-redux/-/react-notification-system-redux-1.2.0.tgz", "integrity": "sha1-FPsJFccuTBLZmD/+ByVOLNGexd8=", - "dev": true, "requires": { "prop-types": "15.6.0", "react-notification-system": "0.2.16" @@ -7133,7 +6921,6 @@ "version": "5.0.6", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz", "integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==", - "dev": true, "requires": { "hoist-non-react-statics": "2.3.1", "invariant": "2.2.2", @@ -7146,8 +6933,7 @@ "hoist-non-react-statics": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", - "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=", - "dev": true + "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" } } }, @@ -7163,7 +6949,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/react-svg-inline/-/react-svg-inline-2.0.1.tgz", "integrity": "sha512-9YVqJ80g1gPWAvD9CS/z4cKPD45ZSMjjzwxFAmQJiMEoAo1Ajhz92WirXag3ftltDN5lPNkVWx/KOnEWB/PaMQ==", - "dev": true, "requires": { "classnames": "2.2.5", "prop-types": "15.6.0" @@ -7226,7 +7011,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -7281,7 +7065,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-7.2.0.tgz", "integrity": "sha512-qbgeI19drwnm9FeGAotDA1vsZO8q94XF7IxPDuJmSXxDYX2rqzhND6NROahCBJfBK5xM1cchvmgscO2rry1EEw==", - "dev": true, "requires": { "deep-equal": "1.0.1", "es6-error": "4.1.1", @@ -7296,34 +7079,29 @@ "hoist-non-react-statics": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", - "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=", - "dev": true + "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" } } }, "redux-undo": { "version": "1.0.0-beta9-9-7", "resolved": "https://registry.npmjs.org/redux-undo/-/redux-undo-1.0.0-beta9-9-7.tgz", - "integrity": "sha1-/juqGycUI9fdu/w6gscbApotuLo=", - "dev": true + "integrity": "sha1-/juqGycUI9fdu/w6gscbApotuLo=" }, "regenerate": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", - "dev": true + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" }, "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" }, "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-types": "6.25.0", @@ -7344,7 +7122,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, "requires": { "regenerate": "1.3.3", "regjsgen": "0.2.0", @@ -7354,14 +7131,12 @@ "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, "requires": { "jsesc": "0.5.0" }, @@ -7369,8 +7144,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, @@ -7432,7 +7206,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/replace-comments-x/-/replace-comments-x-2.0.0.tgz", "integrity": "sha512-+vMP4jqU+8HboLWms6YMNEiaZG5hh1oR6ENCnGYDF/UQ7aYiJUK/8tcl3+KZAHRCKKa3gqzrfiarlUBHQSgRlg==", - "dev": true, "requires": { "require-coercible-to-string-x": "1.0.0", "to-string-x": "1.4.2" @@ -7442,7 +7215,6 @@ "version": "2.80.0", "resolved": "https://registry.npmjs.org/request/-/request-2.80.0.tgz", "integrity": "sha1-jMFi1215OBze/dNQXXa4C2BYm9A=", - "dev": true, "requires": { "aws-sign2": "0.6.0", "aws4": "1.6.0", @@ -7464,26 +7236,23 @@ "stringstream": "0.0.5", "tough-cookie": "2.3.3", "tunnel-agent": "0.4.3", - "uuid": "3.1.0" + "uuid": "3.2.0" }, "dependencies": { "qs": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "dev": true + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.0.tgz", + "integrity": "sha512-qC0vMFX6q6ee8JaoTF2Om1uL8KAV1ATUjVaHRxLiPJkIsp8JZl6ZjG0MIB+twZFLbi1vXj30rqj4zlqYiOS9xg==" } } }, @@ -7491,7 +7260,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/require-coercible-to-string-x/-/require-coercible-to-string-x-1.0.0.tgz", "integrity": "sha512-Rpfd4sMdflPAKecdKhfAtQHlZzzle4UMUgxJ01hXtTcNWMV8w9GeZnKhEyrT73kgrflBOP1zg41amUPZGcNspA==", - "dev": true, "requires": { "require-object-coercible-x": "1.4.1", "to-string-x": "1.4.2" @@ -7513,7 +7281,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/require-object-coercible-x/-/require-object-coercible-x-1.4.1.tgz", "integrity": "sha512-0YHa2afepsLfQvwQ1P2XvDZnGOUia5sC07ZijIRU2dnsRxnuilXWF6B2CFaKGDA9eZl39lJHrXCDsnfgroRd6Q==", - "dev": true, "requires": { "is-nil-x": "1.4.1" } @@ -7527,8 +7294,7 @@ "reselect": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", - "dev": true + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" }, "resolve-cwd": { "version": "2.0.0", @@ -7576,8 +7342,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", - "dev": true + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" }, "schema-utils": { "version": "0.3.0", @@ -7606,8 +7371,7 @@ "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "send": { "version": "0.16.1", @@ -7688,8 +7452,7 @@ "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 + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-immediate-shim": { "version": "1.0.1", @@ -7736,14 +7499,12 @@ "shortid": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.8.tgz", - "integrity": "sha1-AzsRfWoul1gE9vCWnb59PQs1UTE=", - "dev": true + "integrity": "sha1-AzsRfWoul1gE9vCWnb59PQs1UTE=" }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simple-assign": { "version": "0.1.0", @@ -7754,7 +7515,6 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", - "dev": true, "requires": { "once": "1.4.0", "unzip-response": "1.0.2", @@ -7771,7 +7531,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, "requires": { "hoek": "2.16.3" } @@ -7820,8 +7579,7 @@ "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" }, "source-map-support": { "version": "0.4.15", @@ -7835,8 +7593,7 @@ "spark-md5": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.0.tgz", - "integrity": "sha1-NyIifFTi+vJLHcbZM8wUTm9xv+8=", - "dev": true + "integrity": "sha1-NyIifFTi+vJLHcbZM8wUTm9xv+8=" }, "spdx-correct": { "version": "1.0.2", @@ -7898,7 +7655,6 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -7913,8 +7669,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, @@ -7989,7 +7744,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", - "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -7997,8 +7751,7 @@ "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "strip-ansi": { "version": "3.0.1", @@ -8032,8 +7785,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "2.0.0", @@ -8055,7 +7807,6 @@ "version": "1.16.0", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", - "dev": true, "requires": { "chownr": "1.0.1", "mkdirp": "0.5.1", @@ -8067,7 +7818,6 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", - "dev": true, "requires": { "bl": "1.2.1", "end-of-stream": "1.4.1", @@ -8107,14 +7857,12 @@ "integrity": "sha1-QlbC/Djk+yOg0j66K2zOTfjkZtU=" }, "three-js-csg": { - "version": "github:Doodle3D/three-js-csg#a36f23da6e9be2405a9094de5709cb0ae8f58045", - "dev": true + "version": "github:Doodle3D/three-js-csg#a36f23da6e9be2405a9094de5709cb0ae8f58045" }, "through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, "requires": { "readable-stream": "2.3.3", "xtend": "4.0.1" @@ -8145,7 +7893,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz", "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=", - "dev": true, "requires": { "es5-ext": "0.10.35", "next-tick": "1.0.0" @@ -8154,8 +7901,7 @@ "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" } } }, @@ -8168,8 +7914,7 @@ "to-boolean-x": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-boolean-x/-/to-boolean-x-1.0.1.tgz", - "integrity": "sha512-PstxY3K6hVEHnY3FITs8XBoJbt0RI1e4MLIhAL9hWa3BtVLCrb86vU5z6lEKh7uZZjiPiLqIKMmfMro1nNgtXQ==", - "dev": true + "integrity": "sha512-PstxY3K6hVEHnY3FITs8XBoJbt0RI1e4MLIhAL9hWa3BtVLCrb86vU5z6lEKh7uZZjiPiLqIKMmfMro1nNgtXQ==" }, "to-fast-properties": { "version": "1.0.3", @@ -8180,7 +7925,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/to-integer-x/-/to-integer-x-3.0.0.tgz", "integrity": "sha512-794L2Lpwjtynm7RxahJi2YdbRY75gTxUW27TMuN26UgwPkmJb/+HPhkFEFbz+E4vNoiP0dxq5tq5fkXoXLaK/w==", - "dev": true, "requires": { "is-finite-x": "3.0.2", "is-nan-x": "1.0.1", @@ -8192,7 +7936,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-number-x/-/to-number-x-2.0.0.tgz", "integrity": "sha512-lGOnCoccUoSzjZ/9Uen8TC4+VFaQcFGhTroWTv2tYWxXgyJV1zqAZ8hEIMkez/Eo790fBMOjidTnQ/OJSCvAoQ==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "nan-x": "1.0.0", @@ -8205,7 +7948,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/to-object-x/-/to-object-x-1.5.0.tgz", "integrity": "sha512-AKn5GQcdWky+s20vjWkt+Wa6y3dxQH3yQyMBhOfBOPldUwqwhgvlqcIg5H092ntNc+TX8/Cxzs1kMHH19pyCnA==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "require-object-coercible-x": "1.4.1" @@ -8215,7 +7957,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/to-primitive-x/-/to-primitive-x-1.1.0.tgz", "integrity": "sha512-gyMY0gi3wjK3e4MUBKqv9Zl8QGcWguIkaUr2VJmoBEsOpDcpDZSEyljR773eVG4maS48uX7muLkoQoh/BA82OQ==", - "dev": true, "requires": { "has-symbol-support-x": "1.4.1", "is-date-object": "1.0.1", @@ -8231,7 +7972,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/to-property-key-x/-/to-property-key-x-2.0.2.tgz", "integrity": "sha512-YISLpZFYIazNm0P8hLsKEEUEZ3m8U3+eDysJZqTu3+B9tQp+2TrMpaEGT8Agh4fZ5LSoums60/glNEzk5ozqrg==", - "dev": true, "requires": { "has-symbol-support-x": "1.4.1", "to-primitive-x": "1.1.0", @@ -8242,7 +7982,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-string-symbols-supported-x/-/to-string-symbols-supported-x-1.0.0.tgz", "integrity": "sha512-HbVH673pybrUmhzESGHUm17BBJvqb7BU8HciOvuEYm9ipuDyjmddhvkVqpVW6sM/C5/zhJo17n7O7I/24loJIQ==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "has-symbol-support-x": "1.4.1", @@ -8253,7 +7992,6 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/to-string-tag-x/-/to-string-tag-x-1.4.2.tgz", "integrity": "sha512-ytO9eLigxsQQLGuab0C1iSSTzKdJNVSlBg0Spg4J/rGAVrQJ5y774mo0SSzgGeTT4RJGGyJNfObXaTMzX0XDOQ==", - "dev": true, "requires": { "lodash.isnull": "3.0.0", "validate.io-undefined": "1.0.3" @@ -8263,7 +8001,6 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/to-string-x/-/to-string-x-1.4.2.tgz", "integrity": "sha512-/WP5arlwtCpAAexCCHiQBW0eXwse84osWyP1Qtaz71nsYSuUpOkT6tBm8nQ4IIUfSh5hji0hDupUCD2xbbOL6A==", - "dev": true, "requires": { "is-symbol": "1.0.1" } @@ -8278,7 +8015,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", - "dev": true, "requires": { "punycode": "1.4.1" } @@ -8287,7 +8023,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/trim-left-x/-/trim-left-x-3.0.0.tgz", "integrity": "sha512-+m6cqkppI+CxQBTwWEZliOHpOBnCArGyMnS1WCLb6IRgukhTkiQu/TNEN5Lj2eM9jk8ewJsc7WxFZfmwNpRXWQ==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "require-coercible-to-string-x": "1.0.0", @@ -8310,7 +8045,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/trim-right-x/-/trim-right-x-3.0.0.tgz", "integrity": "sha512-iIqEsWEbWVodqdixJHi4FoayJkUxhoL4AvSNGp4FF4FfQKRPGizt8++/RnyC9od75y7P/S6EfONoVqP+NddiKA==", - "dev": true, "requires": { "cached-constructors-x": "1.0.0", "require-coercible-to-string-x": "1.0.0", @@ -8321,7 +8055,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/trim-x/-/trim-x-3.0.0.tgz", "integrity": "sha512-w8s38RAUScQ6t3XqMkS75iz5ZkIYLQpVnv2lp3IuTS36JdlVzC54oe6okOf4Wz3UH4rr3XAb2xR3kR5Xei82fw==", - "dev": true, "requires": { "trim-left-x": "3.0.0", "trim-right-x": "3.0.0" @@ -8337,7 +8070,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -8346,7 +8078,6 @@ "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 }, "type-is": { @@ -8434,8 +8165,7 @@ "unzip-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", - "dev": true + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" }, "upper-case": { "version": "1.1.3", @@ -8515,8 +8245,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utila": { "version": "0.4.0", @@ -8548,8 +8277,7 @@ "valid-url": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", - "dev": true + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" }, "validate-npm-package-license": { "version": "3.0.1", @@ -8564,8 +8292,7 @@ "validate.io-undefined": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/validate.io-undefined/-/validate.io-undefined-1.0.3.tgz", - "integrity": "sha1-fif8uzFbhB54JDQxiXZxkp4gt/Q=", - "dev": true + "integrity": "sha1-fif8uzFbhB54JDQxiXZxkp4gt/Q=" }, "vary": { "version": "1.1.2", @@ -8577,7 +8304,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "1.0.0", "core-util-is": "1.0.2", @@ -8587,8 +8313,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, @@ -8604,8 +8329,7 @@ "vuvuzela": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", - "integrity": "sha1-O+FF5YJxxzylUnndhR8SpoIRSws=", - "dev": true + "integrity": "sha1-O+FF5YJxxzylUnndhR8SpoIRSws=" }, "warning": { "version": "3.0.0", @@ -8928,14 +8652,12 @@ "white-space-x": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/white-space-x/-/white-space-x-3.0.0.tgz", - "integrity": "sha512-nMPVXGMdi/jQepXKryxqzEh/vCwdOYY/u6NZy40glMHvZfEr7/+vQKnDhEq4rZ1nniOFq9GWohQYB30uW/5Olg==", - "dev": true + "integrity": "sha512-nMPVXGMdi/jQepXKryxqzEh/vCwdOYY/u6NZy40glMHvZfEr7/+vQKnDhEq4rZ1nniOFq9GWohQYB30uW/5Olg==" }, "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, "requires": { "string-width": "1.0.2" }, @@ -8944,7 +8666,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -9001,14 +8722,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-stream": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", "integrity": "sha1-g8yMA0fQr2BXqThitOOuAd5cgcE=", - "dev": true, "requires": { "readable-stream": "0.0.4" }, @@ -9016,8 +8735,7 @@ "readable-stream": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", - "integrity": "sha1-8y124/uGM0SlSNeZIwBxc2ZbO40=", - "dev": true + "integrity": "sha1-8y124/uGM0SlSNeZIwBxc2ZbO40=" } } }, @@ -9030,8 +8748,7 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { "version": "3.2.1", @@ -9119,7 +8836,6 @@ "version": "2.9.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", - "dev": true, "requires": { "buffer-crc32": "0.2.13", "fd-slicer": "1.0.1" diff --git a/package.json b/package.json index 6d7cfc5..390c419 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,16 @@ "file-saver": "^1.3.3", "lodash": "^4.17.4", "material-ui": "^0.19.4", + "material-ui-icons": "^1.0.0-beta.17", + "material-ui-textfield-icon": "^0.2.2-1", "proptypes": "^1.1.0", "query-string": "^5.0.1", "react": "^16.0.0", + "react-addons-update": "^15.6.2", "react-dom": "^16.0.0", "react-jss": "^7.2.0", "react-resize-detector": "^1.1.0", + "shortid": "^2.2.8", "three": "^0.88.0" }, "devDependencies": { diff --git a/src/constants.js b/src/constants.js index e08c4ca..f8b06f8 100644 --- a/src/constants.js +++ b/src/constants.js @@ -1,2 +1,3 @@ export const PRECISION = 0.01; export const VERSION = '0.0.18'; +export const LOCAL_STORAGE_KEY = 'PRINTER_SETTINGS'; diff --git a/src/interface/FormComponents.js b/src/interface/FormComponents.js index aff0278..20f2ec6 100644 --- a/src/interface/FormComponents.js +++ b/src/interface/FormComponents.js @@ -4,36 +4,58 @@ import _ from 'lodash'; import injectSheet from 'react-jss'; import MaterialUISelectField from 'material-ui/SelectField' import MaterialUICheckbox from 'material-ui/Checkbox'; -import MaterialUITextField from 'material-ui/TextField'; +import { blue500, grey500 } from 'material-ui/styles/colors'; +import TextFieldIcon from 'material-ui-textfield-icon'; +import Clear from 'material-ui-icons/Clear'; -const contextTypes = { state: PropTypes.object, onChange: PropTypes.func, disabled: PropTypes.bool }; +const contextTypes = { + settings: PropTypes.object.isRequired, + onChange: PropTypes.func.isRequired, + disabled: PropTypes.bool.isRequired, + addPrinter: PropTypes.object.isRequired, + advancedFields: PropTypes.array.isRequired, + activePrinter: PropTypes.string +}; +const propTypes = { + name: PropTypes.string.isRequired +}; export const SelectField = (props, context) => ( context.onChange(props.name, value)} /> ); SelectField.contextTypes = contextTypes; +SelectField.propTypes = propTypes; export const TextField = (props, context) => ( - context.onChange(props.name, null)} />} + floatingLabelStyle={{ color: context.advancedFields.includes(props.name) ? blue500 : grey500 }} disabled={context.disabled} - value={_.get(context.state, props.name)} - onChange={(event, value) => context.onChange(props.name, value)} + value={_.get(context, props.name)} + onChange={(event, value) => context.onChange(props.name, props.type === 'number' ? parseFloat(value) : value)} /> ); TextField.contextTypes = contextTypes; +TextField.propTypes = propTypes; export const Checkbox = (props, context) => ( - context.onChange(props.name, value)} - /> + + context.onChange(props.name, value)} + /> + {context.advancedFields.includes(props.name) && context.onChange(props.name, null)} />} + ); Checkbox.contextTypes = contextTypes; +Checkbox.propTypes = propTypes; diff --git a/src/interface/Settings.js b/src/interface/Settings.js index b97d634..e2303a8 100644 --- a/src/interface/Settings.js +++ b/src/interface/Settings.js @@ -5,7 +5,17 @@ import { Tabs, Tab } from 'material-ui/Tabs'; import MenuItem from 'material-ui/MenuItem'; import injectSheet from 'react-jss'; import { SelectField, TextField, Checkbox } from './FormComponents.js'; -import { grey800, cyan500 } from 'material-ui/styles/colors'; +import { grey800, cyan500, red500 } from 'material-ui/styles/colors'; +import Divider from 'material-ui/Divider'; +import Dialog from 'material-ui/Dialog'; +import FlatButton from 'material-ui/FlatButton'; +import { LOCAL_STORAGE_KEY } from '../constants.js'; +import shortid from 'shortid'; +import defaultSettings from '../settings/default.yml'; +import printerSettings from '../settings/printer.yml'; +import materialSettings from '../settings/material.yml'; +import qualitySettings from '../settings/quality.yml'; +import update from 'react-addons-update'; const styles = { textFieldRow: { @@ -19,74 +29,232 @@ const styles = { fontWeight: 'bold', margin: '30px 0 0 0' } + }, + error: { + color: red500 } }; +const getLocalStorage = () => { + let localStorage = window.localStorage.getItem(LOCAL_STORAGE_KEY); + + if (!localStorage) { + localStorage = { printers: {}, active: null }; + updateLocalStorage(localStorage); + } else { + localStorage = JSON.parse(localStorage); + } + return localStorage; +}; + +const updateLocalStorage = (localStorage) => { + window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(localStorage)); +}; + class Settings extends React.Component { - static childContextTypes = { state: PropTypes.object, onChange: PropTypes.func, disabled: PropTypes.bool }; - static defaultProps: { - disabled: false - }; static propTypes = { classes: PropTypes.objectOf(PropTypes.string), onChange: PropTypes.func, - printers: PropTypes.object.isRequired, - defaultPrinter: PropTypes.string, - quality: PropTypes.object.isRequired, - defaultQuality: PropTypes.string.isRequired, - material: PropTypes.object.isRequired, - defaultMaterial: PropTypes.string.isRequired, - initialSettings: PropTypes.object.isRequired, disabled: PropTypes.bool.isRequired }; - constructor(props) { - super(); - this.state = { - settings: props.initialSettings, - printers: props.defaultPrinter, - quality: props.defaultQuality, - material: props.defaultMaterial - }; + static defaultProps: { + disabled: false + }; + static childContextTypes = { + settings: PropTypes.object.isRequired, + onChange: PropTypes.func.isRequired, + disabled: PropTypes.bool.isRequired, + addPrinter: PropTypes.object.isRequired, + activePrinter: PropTypes.string, + advancedFields: PropTypes.array.isRequired + }; + + state = { + localStorage: getLocalStorage(), + addPrinter: { + open: false, + name: '', + printer: '', + error: null + } + }; + + componentDidMount() { + const { onChange } = this.props; + const { localStorage } = this.state; + if (localStorage.active) { + if (onChange) onChange(this.constructSettings(localStorage)); + } else { + this.openAddPrinterDialog(); + } } changeSettings = (fieldName, value) => { const { onChange } = this.props; + const { localStorage } = this.state; + + let state = _.cloneDeep(this.state); + + const removeAddPrinterError = () => { + state = update(state, { addPrinter: { error: { $set: null } } }); + }; - let state; switch (fieldName) { - case 'printers': - case 'quality': - case 'material': - state = { - [fieldName]: value, - settings: _.merge({}, this.state.settings, this.props[fieldName][value]) - }; + case 'addPrinter.printer': + state = update(state, { addPrinter: { printer: { $set: value } } }); + state = update(state, { addPrinter: { name: { $set: printerSettings[value].title } } }); + removeAddPrinterError(); + break; + + case 'addPrinter.name': + state = update(state, { addPrinter: { name: { $set: value } } }); + removeAddPrinterError(); + break; + + case 'activePrinter': + if (value !== 'add_printer') state = update(state, { localStorage: { active: { $set: value } } }); + break; + + case 'settings.quality': + case 'settings.material': + if (!localStorage.active) return this.openAddPrinterDialog(); + + state = _.set(state, `localStorage.printers[${localStorage.active}].${fieldName}`, value); + break; + + case 'settings.layerHeight': + case 'settings.dimensions.x': + case 'settings.dimensions.y': + case 'settings.dimensions.z': + case 'settings.nozzleDiameter': + case 'settings.bedTemperature': + case 'settings.heatedBed': + case 'settings.filamentThickness': + case 'settings.temperature': + case 'settings.thickness.top': + case 'settings.thickness.bottom': + case 'settings.thickness.shell': + case 'settings.retraction.enabled': + case 'settings.retraction.amount': + case 'settings.retraction.speed': + case 'settings.retraction.minDistance': + case 'settings.travel.speed': + case 'settings.combing': + case 'settings.innerShell.speed': + case 'settings.innerShell.flowRate': + case 'settings.outerShell.speed': + case 'settings.outerShell.flowRate': + case 'settings.innerInfill.gridSize': + case 'settings.innerInfill.speed': + case 'settings.innerInfill.flowRate': + case 'settings.outerInfill.speed': + case 'settings.outerInfill.flowRate': + case 'settings.brim.size': + case 'settings.brim.speed': + case 'settings.brim.flowRate': + case 'settings.firstLayer.speed': + case 'settings.firstLayer.flowRate': + if (!localStorage.active) return this.openAddPrinterDialog(); + + if (value === null) { + const advanced = { ...state.localStorage.printers[localStorage.active].settings.advanced }; + delete advanced[fieldName]; + state = update(state, { localStorage: { printers: { [localStorage.active]: { settings: { advanced: { $set: advanced } } } } } }); + } else { + state = _.set(state, `localStorage.printers[${localStorage.active}].settings.advanced[${JSON.stringify(fieldName)}]`, value); + } break; default: - state = _.set(_.cloneDeep(this.state), fieldName, value); break; } - if (onChange) onChange(state); - if (state) this.setState(state); - }; - - getChildContext() { - return { state: this.state, onChange: this.changeSettings, disabled: this.props.disabled }; + this.setState(state); + if (localStorage.active) { + if (onChange) onChange(this.constructSettings(state.localStorage)); + updateLocalStorage(state.localStorage); + } } + getChildContext() { + const { localStorage, addPrinter } = this.state; + + return { + addPrinter, + activePrinter: localStorage.active, + advancedFields: localStorage.active ? Object.keys(localStorage.printers[localStorage.active].settings.advanced) : [], + settings: this.constructSettings(localStorage), + onChange: this.changeSettings, + disabled: this.props.disabled + }; + } + + constructSettings(localStorage) { + if (!localStorage.active) return defaultSettings; + + const { printer, material, quality, advanced } = localStorage.printers[localStorage.active].settings; + let settings = { + ...defaultSettings, + printer, + material, + quality + }; + + settings = _.merge({}, settings, printerSettings[printer]); + settings = _.merge({}, settings, qualitySettings[quality]); + settings = _.merge({}, settings, materialSettings[material]); + + for (const key in advanced) { + const value = advanced[key]; + settings = _.set(_.cloneDeep(settings), key.replace('settings.', ''), value); + } + + return settings; + } + + addPrinter = () => { + const { name, printer } = this.state.addPrinter; + + if (!name || !printer) { + this.setState({ addPrinter: { ...this.state.addPrinter, error: 'Please enter a name and printer' } }); + return; + } + + const id = shortid.generate(); + const localStorage = { + active: id, + printers: { + ...this.state.localStorage.printers, + [id]: { name, settings: { printer, material: 'pla', quality: 'medium', advanced: {} } } + } + }; + this.setState({ localStorage }); + updateLocalStorage(localStorage); + + this.closeAddPrinterDialog(); + + const { onChange } = this.props; + if (onChange) onChange(this.constructSettings(localStorage)); + } + + closeAddPrinterDialog = () => this.setAddPrinterDialog(false); + openAddPrinterDialog = () => this.setAddPrinterDialog(true); + setAddPrinterDialog = (open) => this.setState({ addPrinter: { name: '', printer: '', error: null, open } }); + render() { - const { classes, printers, quality, material, disabled } = this.props; + const { addPrinter, localStorage } = this.state; + const { classes, disabled } = this.props; return (
- - {Object.entries(printers).map(([value, { title }]) => ( - + + {Object.entries(localStorage.printers).map(([id, { name }]) => ( + ))} + + - - {Object.entries(material).map(([value, { title }]) => ( + + {Object.entries(materialSettings).map(([value, { title }]) => ( ))} @@ -94,8 +262,8 @@ class Settings extends React.Component {
- - {Object.entries(quality).map(([value, { title }]) => ( + + {Object.entries(qualitySettings).map(([value, { title }]) => ( ))} @@ -123,8 +291,6 @@ class Settings extends React.Component { -

Combing

-

Retraction

@@ -156,6 +322,30 @@ class Settings extends React.Component {
+ , + + ]} + > + + {Object.entries(printerSettings).map(([value, { title }]) => ( + ))} + + + {addPrinter.error &&

{addPrinter.error}

} +
); } diff --git a/src/interface/index.js b/src/interface/index.js index b4e94ec..0d8fe43 100644 --- a/src/interface/index.js +++ b/src/interface/index.js @@ -16,10 +16,6 @@ import Menu from 'material-ui/Menu'; import MenuItem from 'material-ui/MenuItem'; import { Tabs, Tab } from 'material-ui/Tabs'; import Settings from './Settings.js'; -import defaultSettings from '../settings/default.yml'; -import printerSettings from '../settings/printer.yml'; -import materialSettings from '../settings/material.yml'; -import qualitySettings from '../settings/quality.yml'; import ReactResizeDetector from 'react-resize-detector'; import JSONToSketchData from 'doodle3d-core/shape/JSONToSketchData'; import createSceneData from 'doodle3d-core/d3/createSceneData.js'; @@ -91,63 +87,40 @@ class Interface extends React.Component { PropTypes.string ]).isRequired, classes: PropTypes.objectOf(PropTypes.string), - defaultSettings: PropTypes.object.isRequired, - printers: PropTypes.object.isRequired, - defaultPrinter: PropTypes.string, - quality: PropTypes.object.isRequired, - defaultQuality: PropTypes.string.isRequired, - material: PropTypes.object.isRequired, - defaultMaterial: PropTypes.string.isRequired, pixelRatio: PropTypes.number.isRequired, onCancel: PropTypes.func, name: PropTypes.string.isRequired }; static defaultProps = { - defaultSettings: defaultSettings, - printers: printerSettings, - quality: qualitySettings, - defaultQuality: 'medium', - material: materialSettings, - defaultMaterial: 'pla', pixelRatio: 1, name: 'Doodle3D' }; constructor(props) { super(props); - const { defaultPrinter, defaultQuality, defaultMaterial, printers, quality, material, defaultSettings } = props; + const scene = createScene(this.props); this.state = { + scene, + settings: null, showFullScreen: false, isSlicing: false, isLoading: true, error: null, - printers: defaultPrinter, - quality: defaultQuality, - material: defaultMaterial, popover: { element: null, open: false - }, - settings: _.merge( - {}, - defaultSettings, - printers[defaultPrinter], - quality[defaultQuality], - material[defaultMaterial] - ) + } }; } componentDidMount() { const { canvas } = this.refs; - const scene = createScene(canvas, this.props, this.state); - - this.setState({ scene }); + const { scene } = this.state; + scene.updateCanvas(canvas); const { file } = this.props; - if (!file) { throw new Error('no file provided'); } if (typeof file === 'string') { @@ -220,22 +193,20 @@ class Interface extends React.Component { }; slice = async (target) => { - const { isSlicing, isLoading, settings, printers, quality, mesh, scene: { material, mesh: { matrix } } } = this.state; + const { isSlicing, isLoading, settings, mesh, scene: { material, mesh: { matrix } } } = this.state; const { name } = this.props; if (isSlicing || isLoading) return; this.closePopover(); - this.setState({ isSlicing: true, progress: { action: '', percentage: 0, step: 0 }, error: null }); const exportMesh = new Mesh(mesh.geometry, mesh.material); exportMesh.applyMatrix(matrix); try { - await slice(target, name, exportMesh, settings, printers, quality, material, progress => { - this.setState({ progress: { ...this.state.progress, ...progress } }); - }); + const updateProgres = progress => this.setState({ progress: { ...this.state.progress, ...progress } }); + await slice(target, name, exportMesh, settings, updateProgres); } catch (error) { this.setState({ error: error.message }); throw error; @@ -263,23 +234,6 @@ class Interface extends React.Component { }); }; - onChangeSettings = (settings) => { - this.setState(settings); - }; - - componentWillUpdate(nextProps, nextState) { - if (!this.state.scene) return; - const { scene: { box, render, setSize } } = this.state; - let changed = false; - if (box && nextState.settings.dimensions !== this.state.settings.dimensions) { - const { dimensions } = nextState.settings; - box.scale.set(dimensions.y, dimensions.z, dimensions.x); - box.updateMatrix(); - changed = true; - } - if (changed) render(); - } - componentDidUpdate() { const { scene: { updateCanvas } } = this.state; const { canvas } = this.refs; @@ -298,9 +252,23 @@ class Interface extends React.Component { this.setState({ showFullScreen: width > MAX_FULLSCREEN_WIDTH }); }; + onChangeSettings = (settings) => { + const { scene: { box, render } } = this.state; + + let changed = false; + if (!this.state.settings || this.state.settings.dimensions !== settings.dimensions) { + box.scale.set(settings.dimensions.y, settings.dimensions.z, settings.dimensions.x); + box.updateMatrix(); + changed = true; + } + if (changed) render(); + + this.setState({ settings, error: null }); + }; + render() { - const { classes, defaultPrinter, defaultQuality, defaultMaterial, onCancel } = this.props; - const { isSlicing, isLoading, progress, settings, printers, quality, material, showFullScreen, error } = this.state; + const { classes, onCancel } = this.props; + const { isSlicing, isLoading, progress, showFullScreen, error } = this.state; const disableUI = isSlicing || isLoading; const style = { ...(showFullScreen ? {} : { maxWidth: 'inherit', width: '100%', height: '100%' }) }; @@ -309,13 +277,6 @@ class Interface extends React.Component {
diff --git a/src/interface/utils.js b/src/interface/utils.js index 0d81a2f..7d8a15e 100644 --- a/src/interface/utils.js +++ b/src/interface/utils.js @@ -1,6 +1,7 @@ import * as THREE from 'three'; import { Box3 } from 'three/src/math/Box3.js'; import { Matrix4 } from 'three/src/math/Matrix4.js'; +import { Vector3 } from 'three/src/math/Vector3.js'; import { Scene } from 'three/src/scenes/Scene.js'; import { PerspectiveCamera } from 'three/src/cameras/PerspectiveCamera.js'; import { AmbientLight } from 'three/src/lights/AmbientLight.js'; @@ -34,14 +35,12 @@ export function centerGeometry(mesh) { mesh.geometry.applyMatrix(new Matrix4().makeTranslation(-center.x, -center.y, -center.z)); } -export function createScene(canvas, props, state) { - const { pixelRatio } = props; - const { settings } = state; - +export function createScene({ pixelRatio }) { const scene = new Scene(); const camera = new PerspectiveCamera(50, 1, 1, 10000); camera.position.set(0, 400, 300); + camera.lookAt(new Vector3(0, 0, 0)); const directionalLightA = new DirectionalLight(0xa2a2a2); directionalLightA.position.set(1, 1, 1); @@ -61,8 +60,10 @@ export function createScene(canvas, props, state) { const box = new BoxHelper(new Mesh(new BoxGeometry(1, 1, 1).applyMatrix(new Matrix4().makeTranslation(0, 0.5, 0))), 0x72bcd4); scene.add(box); - const { dimensions } = settings; - box.scale.set(dimensions.y, dimensions.z, dimensions.x); + let renderer = new WebGLRenderer({ alpha: true, antialias: true }); + let editorControls = new THREE.EditorControls(camera, renderer.domElement); + + box.scale.set(1., 1., 1.); box.updateMatrix(); const render = () => renderer.render(scene, camera); @@ -75,8 +76,6 @@ export function createScene(canvas, props, state) { render(); }; - let editorControls; - let renderer; const updateCanvas = (canvas) => { if (!renderer || renderer.domElement !== canvas) { if (renderer) renderer.dispose(); @@ -86,13 +85,11 @@ export function createScene(canvas, props, state) { if (!editorControls || editorControls.domElement !== canvas) { if (editorControls) editorControls.dispose(); editorControls = new THREE.EditorControls(camera, canvas); - editorControls.focus(mesh); editorControls.addEventListener('change', render); } render(); }; - updateCanvas(canvas); const focus = () => editorControls.focus(mesh); @@ -119,8 +116,8 @@ export function fetchProgress(url, { method = 'get', headers = {}, body = {} } = const GCODE_SERVER_URL = 'https://gcodeserver.doodle3d.com'; const CONNECT_URL = 'http://connect.doodle3d.com/'; -export async function slice(target, name, mesh, settings, printers, quality, material, updateProgress) { - if (!printers) throw new Error('Please select a printer'); +export async function slice(target, name, mesh, settings, updateProgress) { + if (!settings) throw new Error('please select a printer first'); let steps; let currentStep = 0; @@ -167,22 +164,13 @@ export async function slice(target, name, mesh, settings, printers, quality, mat body.append(key, fields[key]); } - const file = ';' + JSON.stringify({ - name: `${name}.gcode`, + const file = `;${JSON.stringify({ ...settings, - printer: { - type: printers, - title: printerSettings[printers].title - }, - material: { - type: material, - title: materialSettings[material].title - }, - quality: { - type: quality, - title: qualitySettings[quality].title - } - }).trim() + '\n' + gcode; + name: `${name}.gcode`, + printer: { type: settings.printers, title: printerSettings[settings.printer].title }, + material: { type: settings.material, title: materialSettings[settings.material].title }, + quality: { type: settings.quality, title: qualitySettings[settings.quality].title } + }).trim()}\n${gcode}`; body.append('file', file); await fetchProgress(reservation.url, { method: 'POST', body }, (progess) => { @@ -195,6 +183,7 @@ export async function slice(target, name, mesh, settings, printers, quality, mat const popup = window.open(`${CONNECT_URL}?uuid=${id}`, '_blank'); if (!popup) throw new Error('popup was blocked by browser'); + break; } default: