From 5690b009ddf706fa1b49fa907d40095cdaa6bf2c Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 31 Aug 2017 18:10:26 +0300 Subject: [PATCH 001/297] #15 --- playground/auth.js | 41 +++++++++++++++++++++++++++++++ playground/index.html | 28 ++++++++++++++++++++++ playground/index.prod.html | 24 ------------------- src/components/imo/IMOModal.js | 42 ++++++++++++++++++++------------ src/components/imo/auth.js | 44 ++++++++++++++++++++++++++++++++++ webpack.config.js | 10 ++++++++ 6 files changed, 150 insertions(+), 39 deletions(-) create mode 100644 playground/auth.js delete mode 100644 playground/index.prod.html create mode 100644 src/components/imo/auth.js diff --git a/playground/auth.js b/playground/auth.js new file mode 100644 index 0000000..e954754 --- /dev/null +++ b/playground/auth.js @@ -0,0 +1,41 @@ +(function() { + function staticConfigurations() { + window.encounterTemplateV2User = { + DoctorCompanyId: 17821, + AppLoginTokens: [ + { + Token: + "178,238,242,138,215,45,54,78,29,77,111,91,104,76,249,136,11,70,14,19,7,115,116,145,164,188,104,150,171,65,234,60,120,158,4,21,228,82,169,100,31,79,93,156,28,140,0,210,103,242,192,64,119,180,85,92,240,162,67,46,230,147,21,110,6,120,92,145,178,242,241,131,70,231,251,169,18,149,205,25,252,112,120,102,141,71,23,35,200,156,153,186,231,212,10,15,79,168,47,76,19,151,252,134,56,176,124,158,41,33,204,213,50,208,86,185,72,90,105,247,137,69,243,118,72,154,73,70", + }, + ], + AppLoginInfoes: [ + { + Signature: null, + }, + ], + }; + + window.encounterTemplateV2EncounterInfo = { + PatientId: 40904933, + DoctorId: 76535, + EncounterId: 0, + EncounterType: null, + CopyEncounterId: 0, + LoggedInUserId: 76535, + DoctorGroupId: 18462, + IsNewEncounter: true, + EncounterVersion: "v2.0", + IsModalPopup: false, + HasEnabledPatientDashboardV2Page: true, + IsPreviewEditMode: false, + SelectedFormId: 0, + SelectedFormName: null, + }; + + window.encounterTemplateV2PageTitle = { + PageTitle: "Add Encounter - Mr. Internal 3Staff Test", + }; + } + + staticConfigurations(); +})(); diff --git a/playground/index.html b/playground/index.html index 650a3f1..7a41627 100644 --- a/playground/index.html +++ b/playground/index.html @@ -13,9 +13,37 @@ integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> +
+ diff --git a/playground/index.prod.html b/playground/index.prod.html deleted file mode 100644 index 0bac2cb..0000000 --- a/playground/index.prod.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - react-jsonschema-form-conditionals playground - - - - - - - - - -
-
- From 2257a5ce8866ff1347f0954f365759063431b9c1 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 17:57:51 +0300 Subject: [PATCH 071/297] Adding first tests --- README.md | 2 +- src/{fields => }/AltInputField.js | 0 src/{fields => }/CollapsibleField.js | 0 src/{fields => }/CompositeArrayField.js | 0 src/{fields => }/RTEField.js | 0 src/{fields => }/TableField.js | 0 src/{fields => }/TypeaheadField.js | 10 ++++--- src/fields/index.js | 16 ----------- src/index.js | 17 ++++++++++-- src/{fields => }/utils.js | 6 +++++ test/TypeaheadField.test.js | 36 +++++++++++++++++++++++++ 11 files changed, 64 insertions(+), 23 deletions(-) rename src/{fields => }/AltInputField.js (100%) rename src/{fields => }/CollapsibleField.js (100%) rename src/{fields => }/CompositeArrayField.js (100%) rename src/{fields => }/RTEField.js (100%) rename src/{fields => }/TableField.js (100%) rename src/{fields => }/TypeaheadField.js (94%) delete mode 100644 src/fields/index.js rename src/{fields => }/utils.js (54%) create mode 100644 test/TypeaheadField.test.js diff --git a/README.md b/README.md index 62b0efc..dda3931 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ The simplest configuration would be - `labelKey` `string` used a labelKey in [typeahead](https://github.com/ericgio/react-bootstrap-typeahead) project - `labelKey` `array` in this case array is a list of fields in original object, which are combined in a single string with a space separator - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields - - `cleanAfterSelection` `boolean` clean selection after component was selected + - `cleanAfterSelection` `boolean` clean selection after component was selected (default false) - `mapping` `object` that maps selected object to schema object For complete list of configurations refer to [react-bootstrap-typeahead](https://github.com/ericgio/react-bootstrap-typeahead) diff --git a/src/fields/AltInputField.js b/src/AltInputField.js similarity index 100% rename from src/fields/AltInputField.js rename to src/AltInputField.js diff --git a/src/fields/CollapsibleField.js b/src/CollapsibleField.js similarity index 100% rename from src/fields/CollapsibleField.js rename to src/CollapsibleField.js diff --git a/src/fields/CompositeArrayField.js b/src/CompositeArrayField.js similarity index 100% rename from src/fields/CompositeArrayField.js rename to src/CompositeArrayField.js diff --git a/src/fields/RTEField.js b/src/RTEField.js similarity index 100% rename from src/fields/RTEField.js rename to src/RTEField.js diff --git a/src/fields/TableField.js b/src/TableField.js similarity index 100% rename from src/fields/TableField.js rename to src/TableField.js diff --git a/src/fields/TypeaheadField.js b/src/TypeaheadField.js similarity index 94% rename from src/fields/TypeaheadField.js rename to src/TypeaheadField.js index 9d9b445..15e3dbd 100644 --- a/src/fields/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -1,7 +1,7 @@ import React, { Component } from "react"; import PropTypes from "prop-types"; import { AsyncTypeahead, Typeahead } from "react-bootstrap-typeahead"; -import { isArraySchema, toArray } from "./utils"; +import { isArraySchema, isObjectSchema, toArray } from "./utils"; import selectn from "selectn"; const DEFAULT_OPTIONS = { @@ -44,7 +44,7 @@ function mapLabelKey(labelKey) { } } -function defaultValue({ properties }) { +function defaultValue({ properties = {} }) { let defVal = Object.keys(properties).reduce((agg, field) => { if (properties[field].default !== undefined) { agg[field] = properties[field].default; @@ -54,9 +54,11 @@ function defaultValue({ properties }) { return defVal; } -function mapSchema(events, schema, mapping, labelFunc) { +export function mapSchema(events, schema, mapping, labelFunc) { if (!mapping) { - events = events.map(labelFunc); + if (!isObjectSchema(schema) && labelFunc) { + events = events.map(labelFunc); + } return isArraySchema(events) ? events : events[0]; } diff --git a/src/fields/index.js b/src/fields/index.js deleted file mode 100644 index afe41be..0000000 --- a/src/fields/index.js +++ /dev/null @@ -1,16 +0,0 @@ -import TableField from "./TableField"; -import { AsyncTypeaheadField, TypeaheadField } from "./TypeaheadField"; -import CompositeArrayField from "./CompositeArrayField"; -import AltInputField from "./AltInputField"; -import CollapsibleField from "./CollapsibleField"; -import RTEField from "./RTEField"; - -export default { - table: TableField, - asyncTypeahead: AsyncTypeaheadField, - typeahead: TypeaheadField, - collapsible: CollapsibleField, - compositeArray: CompositeArrayField, - altInput: AltInputField, - rte: RTEField, -}; diff --git a/src/index.js b/src/index.js index 2381f71..afe41be 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,16 @@ -import fields from "./fields"; +import TableField from "./TableField"; +import { AsyncTypeaheadField, TypeaheadField } from "./TypeaheadField"; +import CompositeArrayField from "./CompositeArrayField"; +import AltInputField from "./AltInputField"; +import CollapsibleField from "./CollapsibleField"; +import RTEField from "./RTEField"; -export default fields; +export default { + table: TableField, + asyncTypeahead: AsyncTypeaheadField, + typeahead: TypeaheadField, + collapsible: CollapsibleField, + compositeArray: CompositeArrayField, + altInput: AltInputField, + rte: RTEField, +}; diff --git a/src/fields/utils.js b/src/utils.js similarity index 54% rename from src/fields/utils.js rename to src/utils.js index f6359cb..92e0829 100644 --- a/src/fields/utils.js +++ b/src/utils.js @@ -6,6 +6,12 @@ export function toArray(el) { } } +export function isObjectSchema(schema) { + return ( + schema.type === "object" || (schema.items && schema.items.type === "object") + ); +} + export function isArraySchema(schema) { return schema.items; } diff --git a/test/TypeaheadField.test.js b/test/TypeaheadField.test.js new file mode 100644 index 0000000..5703f90 --- /dev/null +++ b/test/TypeaheadField.test.js @@ -0,0 +1,36 @@ +import { mapSchema } from "../src/TypeaheadField"; + +let strSchema = { + type: "string", +}; + +test("map simple string", () => { + expect(mapSchema(["test"], strSchema)).toEqual("test"); +}); + +test("map string with label", () => { + expect( + mapSchema([{ name: "test" }], strSchema, undefined, obj => obj.name) + ).toEqual("test"); +}); + +let objSchema = { + type: "object", + properties: { + name: { type: "string" }, + }, +}; + +test("map any obj", () => { + expect( + mapSchema([{ name: "test" }], objSchema, undefined, obj => obj.name) + ).toEqual({ name: "test" }); +}); + +test("map obj with mapping", () => { + expect( + mapSchema([{ lastName: "Woo", firstName: "Woo" }], objSchema, { + name: "firstName", + }) + ).toEqual({ name: "Woo" }); +}); From 10423a2b39c6555ddb0563e0136ab499ce3c8747 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 17:59:08 +0300 Subject: [PATCH 072/297] 0.8.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 03661cc..035fbdf 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "zboldyga@gmail.com", - "version": "0.8.3", + "version": "0.8.4", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 151322dfaae1c864723fafe1d941e7c98c22ef03 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 18:42:43 +0300 Subject: [PATCH 073/297] fixing small typeahead issues --- playground/app/typeahead/index.js | 11 +- playground/app/typeahead/schema.js | 31 ++ playground/app/typeahead/schema.json | 10 - playground/app/typeahead/uiSchema.js | 18 + playground/app/typeahead/uiSchema.json | 12 - src/TypeaheadField.js | 22 +- src/utils.js | 2 +- test/TypeaheadField.simple.test.js | 73 ++++ .../TypeaheadField.simple.test.js.snap | 316 ++++++++++++++++++ 9 files changed, 460 insertions(+), 35 deletions(-) create mode 100644 playground/app/typeahead/schema.js delete mode 100644 playground/app/typeahead/schema.json create mode 100644 playground/app/typeahead/uiSchema.js delete mode 100644 playground/app/typeahead/uiSchema.json create mode 100644 test/TypeaheadField.simple.test.js create mode 100644 test/__snapshots__/TypeaheadField.simple.test.js.snap diff --git a/playground/app/typeahead/index.js b/playground/app/typeahead/index.js index 8de6e02..aa5557b 100644 --- a/playground/app/typeahead/index.js +++ b/playground/app/typeahead/index.js @@ -1,6 +1,11 @@ -import schema from "./schema.json"; -import uiSchema from "./uiSchema.json"; +import schema from "./schema"; +import uiSchema from "./uiSchema"; export default Object.assign({}, schema, uiSchema, { - formData: { str: "other" }, + formData: { + str: "some", + strArr: ["some"], + obj: { name: "other" }, + objArr: [{ name: "other" }], + }, }); diff --git a/playground/app/typeahead/schema.js b/playground/app/typeahead/schema.js new file mode 100644 index 0000000..68e5998 --- /dev/null +++ b/playground/app/typeahead/schema.js @@ -0,0 +1,31 @@ +export default { + schema: { + type: "object", + properties: { + str: { + type: "string", + }, + strArr: { + type: "array", + items: { + type: "string", + }, + }, + obj: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + objArr: { + type: "array", + items: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + }, + }, + }, +}; diff --git a/playground/app/typeahead/schema.json b/playground/app/typeahead/schema.json deleted file mode 100644 index ef7a82c..0000000 --- a/playground/app/typeahead/schema.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "schema": { - "type": "object", - "properties": { - "str": { - "type": "string" - } - } - } -} diff --git a/playground/app/typeahead/uiSchema.js b/playground/app/typeahead/uiSchema.js new file mode 100644 index 0000000..a1e6ffb --- /dev/null +++ b/playground/app/typeahead/uiSchema.js @@ -0,0 +1,18 @@ +const fieldProps = { + classNames: "col-md-12", + "ui:field": "typeahead", + typeahead: { + options: [{ name: "some" }, { name: "other" }], + labelKey: "name", + minLength: 1, + }, +}; + +export default { + uiSchema: { + str: fieldProps, + strArr: fieldProps, + obj: fieldProps, + objArr: fieldProps, + }, +}; diff --git a/playground/app/typeahead/uiSchema.json b/playground/app/typeahead/uiSchema.json deleted file mode 100644 index 784df30..0000000 --- a/playground/app/typeahead/uiSchema.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "uiSchema": { - "str": { - "classNames": "col-md-12", - "ui:field": "typeahead", - "typeahead": { - "options": [ "some", "other" ], - "minLength": 1 - } - } - } -} diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 15e3dbd..0122bbc 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -59,7 +59,7 @@ export function mapSchema(events, schema, mapping, labelFunc) { if (!isObjectSchema(schema) && labelFunc) { events = events.map(labelFunc); } - return isArraySchema(events) ? events : events[0]; + return isArraySchema(schema) ? events : events[0]; } let defVal = defaultValue(schema.properties ? schema : schema.items); @@ -75,6 +75,14 @@ export function mapSchema(events, schema, mapping, labelFunc) { return isArraySchema(schema) ? mappedEvents : mappedEvents[0]; } +function toSelected(formData, schema, labelF) { + let normFormData = formData ? toArray(formData) : []; + if (isObjectSchema(schema)) { + return normFormData.map(selected => labelF(selected)); + } + return normFormData; +} + class BaseTypeaheadField extends Component { handleSelectionChange = conf => events => { if (events.length > 0) { @@ -100,12 +108,10 @@ class BaseTypeaheadField extends Component { export class TypeaheadField extends BaseTypeaheadField { render() { - let { uiSchema: { typeahead }, formData } = this.props; + let { uiSchema: { typeahead }, formData, schema } = this.props; let labelKey = mapLabelKey(typeahead.labelKey); - let selected = (formData ? toArray(formData) : []).map(selected => - labelKey(selected) - ); + let selected = toSelected(formData, schema, labelKey); let typeConf = Object.assign({}, DEFAULT_OPTIONS, typeahead, { onChange: this.handleSelectionChange(typeahead), @@ -159,12 +165,10 @@ export class AsyncTypeaheadField extends BaseTypeaheadField { }; render() { - let { uiSchema: { asyncTypeahead }, formData } = this.props; + let { schema, uiSchema: { asyncTypeahead }, formData } = this.props; let labelKey = mapLabelKey(asyncTypeahead.labelKey); - let selected = (formData ? toArray(formData) : []).map(selected => - labelKey(selected) - ); + let selected = toSelected(formData, schema, labelKey); let typeConf = Object.assign(DEFAULT_OPTIONS, asyncTypeahead, { selected, diff --git a/src/utils.js b/src/utils.js index 92e0829..107e488 100644 --- a/src/utils.js +++ b/src/utils.js @@ -13,5 +13,5 @@ export function isObjectSchema(schema) { } export function isArraySchema(schema) { - return schema.items; + return schema.type === "array"; } diff --git a/test/TypeaheadField.simple.test.js b/test/TypeaheadField.simple.test.js new file mode 100644 index 0000000..f70dea7 --- /dev/null +++ b/test/TypeaheadField.simple.test.js @@ -0,0 +1,73 @@ +import React from "react"; +import Form from "react-jsonschema-form"; +import fields from "../src"; +import renderer from "react-test-renderer"; + +let formData = { + str: "some", + strArr: ["some"], + obj: { name: "other" }, + objArr: [{ name: "other" }], +}; + +let schema = { + type: "object", + properties: { + str: { + type: "string", + }, + strArr: { + type: "array", + items: { + type: "string", + }, + }, + obj: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + objArr: { + type: "array", + items: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + }, + }, +}; + +let fieldProps = { + classNames: "col-md-12", + "ui:field": "typeahead", + typeahead: { + options: [{ name: "some" }, { name: "other" }], + labelKey: "name", + minLength: 1, + }, +}; + +let uiSchema = { + uiSchema: { + str: fieldProps, + strArr: fieldProps, + obj: fieldProps, + objArr: fieldProps, + }, +}; + +test("Typeahead render", () => { + const component = renderer.create( +
+ ); + let tree = component.toJSON(); + expect(tree).toMatchSnapshot(); +}); diff --git a/test/__snapshots__/TypeaheadField.simple.test.js.snap b/test/__snapshots__/TypeaheadField.simple.test.js.snap new file mode 100644 index 0000000..89f0f68 --- /dev/null +++ b/test/__snapshots__/TypeaheadField.simple.test.js.snap @@ -0,0 +1,316 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Typeahead render 1`] = ` + +
+
+
+ +
+ +
+
+
+
+
+ + strArr + +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+

+ +

+
+
+
+
+
+
+
+ + obj + +
+ +
+ +
+
+
+
+
+
+
+
+
+ + objArr + +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+

+ +

+
+
+
+
+
+
+
+
+
+

+ +

+ +`; From 1f8f9a843f3635f0fd2db87978cd9aef20238e61 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 18:43:52 +0300 Subject: [PATCH 074/297] 0.8.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 035fbdf..b3c08c2 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "zboldyga@gmail.com", - "version": "0.8.4", + "version": "0.8.5", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From c54f093f592e40a9dedaae6049c64219dfbdc56b Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 19:21:25 +0300 Subject: [PATCH 075/297] fixing CompositeArrayField --- package.json | 19 +++++----- playground/app/App.js | 8 ++-- playground/app/typeahead/index.js | 1 + playground/app/typeahead/schema.js | 9 +++++ playground/app/typeahead/uiSchema.js | 5 +++ src/CompositeArrayField.js | 4 +- test/CompositeArrayField.simple.test.js | 50 +++++++++++++++++++++++++ test/TypeaheadField.simple.test.js | 13 +++---- test/rAF.js | 35 +++++++++++++++++ 9 files changed, 122 insertions(+), 22 deletions(-) create mode 100644 test/CompositeArrayField.simple.test.js create mode 100644 test/rAF.js diff --git a/package.json b/package.json index b3c08c2..482ea13 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ }, "dependencies": { "prop-types": "^15.6.0", - "react-bootstrap-table": "^4.0.2", + "react-bootstrap-table": "^4.0.6", "react-bootstrap-typeahead": "v1.4.2", "react-modal": "^2.3.2", "react-rte": "^0.15.0", @@ -70,7 +70,6 @@ "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.26.0", "bootstrap": "^3.3.7", - "codemirror": "^5.28.0", "coveralls": "^3.0.0", "cross-env": "^5.0.5", "css-loader": "^0.28.5", @@ -82,17 +81,17 @@ "estraverse-fb": "^1.3.2", "exit-hook": "^1.1.1", "express": "^4.15.4", - "extract-text-webpack-plugin": "^3.0.0", + "extract-text-webpack-plugin": "^3.0.1", "gh-pages": "^1.0.0", "has-flag": "^2.0.0", "html": "1.0.0", "husky": "^0.14.3", "jest": "^20.0.4", - "jsdom": "^11.2.0", + "jsdom": "^11.3.0", "lint-staged": "^4.0.3", - "prettier": "^1.5.3", + "prettier": "^1.7.4", "react": "^15.6.1", - "react-addons-test-utils": "^15.6.0", + "react-addons-test-utils": "^15.6.2", "react-codemirror": "^1.0.0", "react-dom": "^15.6.1", "react-jsonschema-form": "^0.49.0", @@ -100,12 +99,12 @@ "react-transform-catch-errors": "^1.0.2", "react-transform-hmr": "^1.0.4", "regenerator-runtime": "^0.11.0", - "rimraf": "^2.6.1", + "rimraf": "^2.6.2", "sinon": "^3.2.1", "style-loader": "^0.18.2", - "webpack": "^3.5.5", - "webpack-dev-server": "^2.7.1", - "webpack-hot-middleware": "^2.18.2" + "webpack": "^3.6.0", + "webpack-dev-server": "^2.9.1", + "webpack-hot-middleware": "^2.19.1" }, "directories": { "test": "test" diff --git a/playground/app/App.js b/playground/app/App.js index d0cd040..ba1fce4 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -2,17 +2,17 @@ import React from "react"; import fields from "../../src/index"; import Form from "react-jsonschema-form"; -import rte from "./rte"; import typeahead from "./typeahead"; -import dx from "./dx"; +// import rte from "./rte"; +// import dx from "./dx"; export function App() { let handleChange = ({ formData }) => console.log(JSON.stringify(formData)); return (
- - + {/**/} + {/**/}
); } diff --git a/playground/app/typeahead/index.js b/playground/app/typeahead/index.js index aa5557b..9c3d2ea 100644 --- a/playground/app/typeahead/index.js +++ b/playground/app/typeahead/index.js @@ -7,5 +7,6 @@ export default Object.assign({}, schema, uiSchema, { strArr: ["some"], obj: { name: "other" }, objArr: [{ name: "other" }], + compArr: [{ name: "other" }], }, }); diff --git a/playground/app/typeahead/schema.js b/playground/app/typeahead/schema.js index 68e5998..686be58 100644 --- a/playground/app/typeahead/schema.js +++ b/playground/app/typeahead/schema.js @@ -26,6 +26,15 @@ export default { }, }, }, + compArr: { + type: "array", + items: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + }, }, }, }; diff --git a/playground/app/typeahead/uiSchema.js b/playground/app/typeahead/uiSchema.js index a1e6ffb..d7d4bcd 100644 --- a/playground/app/typeahead/uiSchema.js +++ b/playground/app/typeahead/uiSchema.js @@ -14,5 +14,10 @@ export default { strArr: fieldProps, obj: fieldProps, objArr: fieldProps, + compArr: Object.assign({}, fieldProps, { + "ui:field": "compositeArray", + inputField: "typeahead", + arrayField: "table", + }), }, }; diff --git a/src/CompositeArrayField.js b/src/CompositeArrayField.js index 0e18263..fa94349 100644 --- a/src/CompositeArrayField.js +++ b/src/CompositeArrayField.js @@ -15,12 +15,14 @@ class CompositeArrayField extends Component { registry: { fields }, } = this.props; + let inputProps = Object.assign({}, this.props, { formData: undefined }); + let InputElement = fields[inputField]; let ArrayElement = fields[arrayField]; return (
- +
diff --git a/test/CompositeArrayField.simple.test.js b/test/CompositeArrayField.simple.test.js new file mode 100644 index 0000000..78324cb --- /dev/null +++ b/test/CompositeArrayField.simple.test.js @@ -0,0 +1,50 @@ +import "./rAF"; +import React from "react"; +import Form from "react-jsonschema-form"; +import fields from "../src"; +import renderer from "react-test-renderer"; + +let formData = { + compArr: [{ name: "other" }], +}; + +let schema = { + type: "object", + properties: { + compArr: { + type: "array", + items: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + }, + }, +}; + +let uiSchema = { + compArr: { + "ui:field": "compositeArray", + inputField: "typeahead", + arrayField: "table", + typeahead: { + options: [{ name: "some" }, { name: "other" }], + labelKey: "name", + minLength: 1, + }, + }, +}; + +test.skip("CompositeArray render", () => { + const component = renderer.create( + + ); + let tree = component.toJSON(); + expect(tree).toMatchSnapshot(); +}); diff --git a/test/TypeaheadField.simple.test.js b/test/TypeaheadField.simple.test.js index f70dea7..cf730a7 100644 --- a/test/TypeaheadField.simple.test.js +++ b/test/TypeaheadField.simple.test.js @@ -1,3 +1,4 @@ +import "./rAF"; import React from "react"; import Form from "react-jsonschema-form"; import fields from "../src"; @@ -51,15 +52,13 @@ let fieldProps = { }; let uiSchema = { - uiSchema: { - str: fieldProps, - strArr: fieldProps, - obj: fieldProps, - objArr: fieldProps, - }, + str: fieldProps, + strArr: fieldProps, + obj: fieldProps, + objArr: fieldProps, }; -test("Typeahead render", () => { +test.skip("Typeahead render", () => { const component = renderer.create( Date: Wed, 11 Oct 2017 19:27:36 +0300 Subject: [PATCH 076/297] Updating version --- package.json | 2 +- src/CompositeArrayField.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 482ea13..a1bfb53 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "zboldyga@gmail.com", - "version": "0.8.5", + "version": "0.8.6", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", diff --git a/src/CompositeArrayField.js b/src/CompositeArrayField.js index fa94349..74b9fdc 100644 --- a/src/CompositeArrayField.js +++ b/src/CompositeArrayField.js @@ -33,6 +33,9 @@ class CompositeArrayField extends Component { } CompositeArrayField.propTypes = { + schema: PropTypes.shape({ + type: PropTypes.oneOf("array").isRequired, + }).isRequired, uiSchema: PropTypes.shape({ inputField: PropTypes.string.isRequired, arrayField: PropTypes.string.isRequired, From 17d57a592bc468fb32c4d0b17daa9def2463fdde Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 21:14:15 +0300 Subject: [PATCH 077/297] fix #42 --- playground/app/typeahead/uiSchema.js | 1 + src/CompositeArrayField.js | 2 +- src/TypeaheadField.js | 48 +++++++++++++++++++++------- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/playground/app/typeahead/uiSchema.js b/playground/app/typeahead/uiSchema.js index d7d4bcd..1c7336b 100644 --- a/playground/app/typeahead/uiSchema.js +++ b/playground/app/typeahead/uiSchema.js @@ -3,6 +3,7 @@ const fieldProps = { "ui:field": "typeahead", typeahead: { options: [{ name: "some" }, { name: "other" }], + allowNew: true, labelKey: "name", minLength: 1, }, diff --git a/src/CompositeArrayField.js b/src/CompositeArrayField.js index 74b9fdc..1643c66 100644 --- a/src/CompositeArrayField.js +++ b/src/CompositeArrayField.js @@ -34,7 +34,7 @@ class CompositeArrayField extends Component { CompositeArrayField.propTypes = { schema: PropTypes.shape({ - type: PropTypes.oneOf("array").isRequired, + type: PropTypes.oneOf(["array"]).isRequired, }).isRequired, uiSchema: PropTypes.shape({ inputField: PropTypes.string.isRequired, diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 0122bbc..397c194 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -37,10 +37,17 @@ function mapLabelKey(labelKey) { ) { let { fields, separator } = labelKey; return optionToString(fields, separator); - } else if (labelKey) { - return obj => obj[labelKey]; + } + return labelKey; +} + +function applyLabelKey(obj, labelKey) { + if (typeof labelKey === "function") { + return labelKey(obj); + } else if (typeof labelKey === "string") { + return obj[labelKey]; } else { - return obj => obj; + return obj; } } @@ -54,15 +61,18 @@ function defaultValue({ properties = {} }) { return defVal; } -export function mapSchema(events, schema, mapping, labelFunc) { +function mapObjectSchema(events, schema, mapping) { if (!mapping) { - if (!isObjectSchema(schema) && labelFunc) { - events = events.map(labelFunc); - } - return isArraySchema(schema) ? events : events[0]; + return events; } let defVal = defaultValue(schema.properties ? schema : schema.items); + if (typeof mapping === "string") { + return events.map(event => { + return Object.assign({}, defVal, { [mapping]: event }); + }); + } + let mappedEvents = events.map(event => { let schemaEvent = Object.keys(mapping).reduce((agg, field) => { let eventField = mapping[field]; @@ -72,13 +82,29 @@ export function mapSchema(events, schema, mapping, labelFunc) { return schemaEvent; }); - return isArraySchema(schema) ? mappedEvents : mappedEvents[0]; + return mappedEvents; +} + +function mapGeneralSchema(events, mapping, labelFunc) { + if (!mapping) { + return events.map(event => applyLabelKey(event, labelFunc)); + } else { + return events.map(event => event[mapping]); + } +} + +export function mapSchema(events, schema, mapping, labelFunc) { + let schemaEvents = isObjectSchema(schema) + ? mapObjectSchema(events, schema, mapping) + : mapGeneralSchema(events, mapping, labelFunc); + + return isArraySchema(schema) ? schemaEvents : schemaEvents[0]; } -function toSelected(formData, schema, labelF) { +function toSelected(formData, schema, labelKey) { let normFormData = formData ? toArray(formData) : []; if (isObjectSchema(schema)) { - return normFormData.map(selected => labelF(selected)); + return normFormData.map(selected => applyLabelKey(selected, labelKey)); } return normFormData; } From 11d19eade540d3e75d906df5045fd80863bd87f0 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Wed, 11 Oct 2017 21:15:19 +0300 Subject: [PATCH 078/297] 0.8.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1bfb53..eadb8bb 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "zboldyga@gmail.com", - "version": "0.8.6", + "version": "0.8.7", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From d3db9beea6715eda64fd21185177d7d1e06a7a68 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 14:53:13 +0300 Subject: [PATCH 079/297] fix #44 --- package.json | 6 +- playground/app/App.js | 16 +++- playground/app/dx/uiSchema.js | 4 +- playground/app/index.js | 2 +- .../app/typeaheadNonExpandable/formData.js | 9 ++ .../app/typeaheadNonExpandable/index.js | 9 ++ .../app/typeaheadNonExpandable/schema.js | 48 ++++++++++ .../app/typeaheadNonExpandable/uiSchema.js | 14 +++ src/TableField.js | 13 ++- test/issues/44.test.js | 94 +++++++++++++++++++ 10 files changed, 197 insertions(+), 18 deletions(-) create mode 100644 playground/app/typeaheadNonExpandable/formData.js create mode 100644 playground/app/typeaheadNonExpandable/index.js create mode 100644 playground/app/typeaheadNonExpandable/schema.js create mode 100644 playground/app/typeaheadNonExpandable/uiSchema.js create mode 100644 test/issues/44.test.js diff --git a/package.json b/package.json index eadb8bb..7cf9b2b 100644 --- a/package.json +++ b/package.json @@ -38,18 +38,16 @@ ], "engineStrict": false, "engines": { - "npm": "^2.14.7", - "node": ">=6" + "npm": "^5.0.4", + "node": ">=8.0.0" }, "peerDependencies": { "prop-types": "^15.5.10", "react": "^15.0.0" }, "dependencies": { - "prop-types": "^15.6.0", "react-bootstrap-table": "^4.0.6", "react-bootstrap-typeahead": "v1.4.2", - "react-modal": "^2.3.2", "react-rte": "^0.15.0", "selectn": "^1.1.2" }, diff --git a/playground/app/App.js b/playground/app/App.js index ba1fce4..a148e71 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -3,16 +3,22 @@ import fields from "../../src/index"; import Form from "react-jsonschema-form"; import typeahead from "./typeahead"; -// import rte from "./rte"; -// import dx from "./dx"; +import typeaheadNonExpandable from "./typeaheadNonExpandable"; +import rte from "./rte"; +import dx from "./dx"; -export function App() { +export default function App() { let handleChange = ({ formData }) => console.log(JSON.stringify(formData)); return (
+ - {/**/} - {/**/} + +
); } diff --git a/playground/app/dx/uiSchema.js b/playground/app/dx/uiSchema.js index 20af30f..f5b2710 100644 --- a/playground/app/dx/uiSchema.js +++ b/playground/app/dx/uiSchema.js @@ -1,9 +1,7 @@ export default { diagnosis: { classNames: "col-md-12", - "ui:field": "compositeArray", - inputField: "ArrayField", - arrayField: "table", + "ui:field": "table", table: { tableCols: [ { dataField: "description", editable: false }, diff --git a/playground/app/index.js b/playground/app/index.js index b0be0c6..2366cda 100644 --- a/playground/app/index.js +++ b/playground/app/index.js @@ -1,5 +1,5 @@ import ReactDOM from "react-dom"; import React from "react"; -import { App } from "./App"; +import App from "./App"; ReactDOM.render(, document.getElementById("app")); diff --git a/playground/app/typeaheadNonExpandable/formData.js b/playground/app/typeaheadNonExpandable/formData.js new file mode 100644 index 0000000..babe27b --- /dev/null +++ b/playground/app/typeaheadNonExpandable/formData.js @@ -0,0 +1,9 @@ +export default { + medications: [ + { + useGeneric: true, + drugName: "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", + drugId: 471154, + }, + ], +}; diff --git a/playground/app/typeaheadNonExpandable/index.js b/playground/app/typeaheadNonExpandable/index.js new file mode 100644 index 0000000..3ac1de0 --- /dev/null +++ b/playground/app/typeaheadNonExpandable/index.js @@ -0,0 +1,9 @@ +import schema from "./schema"; +import uiSchema from "./uiSchema"; +import formData from "./formData"; + +export default { + schema, + uiSchema, + formData, +}; diff --git a/playground/app/typeaheadNonExpandable/schema.js b/playground/app/typeaheadNonExpandable/schema.js new file mode 100644 index 0000000..c9615c4 --- /dev/null +++ b/playground/app/typeaheadNonExpandable/schema.js @@ -0,0 +1,48 @@ +export default { + required: [], + type: "object", + properties: { + medications: { + type: "array", + title: "Medications", + items: { + required: [], + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + dosage: { + type: "string", + title: "Dosage", + }, + quantity: { + type: "string", + title: "Quantity", + }, + unit: { + type: "string", + title: "Units", + }, + refills: { + type: "string", + title: "Refills", + }, + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + startDate: { + type: "date", + title: "Start Date", + }, + }, + }, + }, + }, +}; diff --git a/playground/app/typeaheadNonExpandable/uiSchema.js b/playground/app/typeaheadNonExpandable/uiSchema.js new file mode 100644 index 0000000..96a6206 --- /dev/null +++ b/playground/app/typeaheadNonExpandable/uiSchema.js @@ -0,0 +1,14 @@ +export default { + medications: { + classNames: "col-md-12", + "ui:field": "table", + table: { + tableCols: [ + { + dataField: "drugId", + hidden: true, + }, + ], + }, + }, +}; diff --git a/src/TableField.js b/src/TableField.js index b96dae5..1364865 100644 --- a/src/TableField.js +++ b/src/TableField.js @@ -76,15 +76,18 @@ function toEditable(fieldProp) { function setColumnCSSIfMissing(col, css) { col.className = col.className ? col.className : css; - col.columnClassName = col.columnClassName ? col.columnClassName : css; + col.columnClassName = col.columnClassName + ? col.columnClassName + : col.className; + col.editColumnClassName = col.editColumnClassName + ? col.editColumnClassName + : col.className; } function withColumnCss(columns) { - let shownColumns = columns.filter( - col => col.hidden === undefined || !col.hidden - ); + let shownColumns = columns.filter(({ hidden }) => !hidden); let numCols = shownColumns.length; - let colSize = Math.round(12 / numCols); + let colSize = Math.floor(12 / numCols); if (colSize === 0) { return columns; } diff --git a/test/issues/44.test.js b/test/issues/44.test.js new file mode 100644 index 0000000..72fdb1d --- /dev/null +++ b/test/issues/44.test.js @@ -0,0 +1,94 @@ +import React from "react"; +import Form from "react-jsonschema-form"; +import fields from "../../src"; +import renderer from "react-test-renderer"; + +const schema = { + required: [], + type: "object", + properties: { + medications: { + type: "array", + title: "Medications", + items: { + required: [], + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + dosage: { + type: "string", + title: "Dosage", + }, + quantity: { + type: "string", + title: "Quantity", + }, + unit: { + type: "string", + title: "Units", + }, + refills: { + type: "string", + title: "Refills", + }, + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + startDate: { + type: "date", + title: "Start Date", + }, + }, + }, + }, + }, +}; + +const uiSchema = { + medications: { + classNames: "col-md-12", + "ui:field": "table", + table: { + selectRow: { + clickToExpand: true, + }, + tableCols: [ + { + dataField: "drugId", + hidden: true, + }, + ], + }, + }, +}; + +const formData = { + medications: [ + { + useGeneric: true, + drugName: "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", + drugId: 471154, + }, + ], +}; + +test.skip("table medications", () => { + const component = renderer.create( + + ); + let tree = component.toJSON(); + expect(tree).toMatchSnapshot(); +}); From dd0daa2a427a05577062e574f2413cb80ecb1741 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 15:42:20 +0300 Subject: [PATCH 080/297] #43 --- .../app/typeaheadNonExpandable/formData.js | 6 +- .../app/typeaheadNonExpandable/schema.js | 17 ++-- .../app/typeaheadNonExpandable/uiSchema.js | 40 +++++++- src/TableField.js | 6 ++ src/TypeaheadField.js | 93 ++++++++++--------- test/TypeaheadField.test.js | 18 ++-- 6 files changed, 119 insertions(+), 61 deletions(-) diff --git a/playground/app/typeaheadNonExpandable/formData.js b/playground/app/typeaheadNonExpandable/formData.js index babe27b..9224dd8 100644 --- a/playground/app/typeaheadNonExpandable/formData.js +++ b/playground/app/typeaheadNonExpandable/formData.js @@ -2,8 +2,10 @@ export default { medications: [ { useGeneric: true, - drugName: "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", - drugId: 471154, + drug: { + drugName: "dexibuprofen", + drugId: 6963, + }, }, ], }; diff --git a/playground/app/typeaheadNonExpandable/schema.js b/playground/app/typeaheadNonExpandable/schema.js index c9615c4..4ba62b3 100644 --- a/playground/app/typeaheadNonExpandable/schema.js +++ b/playground/app/typeaheadNonExpandable/schema.js @@ -9,12 +9,17 @@ export default { required: [], type: "object", properties: { - drugId: { - type: "string", - }, - drugName: { - type: "string", - title: "Drug Name", + drug: { + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + }, }, dosage: { type: "string", diff --git a/playground/app/typeaheadNonExpandable/uiSchema.js b/playground/app/typeaheadNonExpandable/uiSchema.js index 96a6206..39329f5 100644 --- a/playground/app/typeaheadNonExpandable/uiSchema.js +++ b/playground/app/typeaheadNonExpandable/uiSchema.js @@ -5,8 +5,44 @@ export default { table: { tableCols: [ { - dataField: "drugId", - hidden: true, + dataField: "drug", + field: "typeahead", + dataFormat: "drugName", + className: "col-md-3", + columnClassName: "col-md-3", + editColumnClassName: "col-md-3", + uiSchema: { + typeahead: { + options: [ + { + DrugId: 6963, + DrugName: "dexibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 2377, + DrugName: "ibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 10936, + DrugName: "ibuproxam", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 110394, + DrugName: "NeoProfen (ibuprofen lysn)(PF)", + DrugType: { Id: 2, Name: null }, + }, + ], + labelKey: "DrugName", + bodyContainer: true, + mapping: { + drugName: "DrugName", + drugId: "DrugId", + }, + }, + }, }, ], }, diff --git a/src/TableField.js b/src/TableField.js index 1364865..423dd40 100644 --- a/src/TableField.js +++ b/src/TableField.js @@ -113,6 +113,12 @@ export function toTableColumns(schema, tableCols = [], fields = {}) { let columnsWithOverrides = schemaCols.map(sCol => { let tCol = tableCols.find(col => col.dataField === sCol.dataField); + if (tCol && typeof tCol.dataFormat === "string") { + let field = tCol.dataFormat; + tCol.dataFormat = (cell, row) => { + return row[sCol.dataField][field]; + }; + } if (tCol && tCol.field && fields[tCol.field]) { let FieldEditor = fields[tCol.field]; let fieldUISchema = tCol.uiSchema; diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 397c194..d8fe146 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -51,7 +51,7 @@ function applyLabelKey(obj, labelKey) { } } -function defaultValue({ properties = {} }) { +function defaultValue(properties) { let defVal = Object.keys(properties).reduce((agg, field) => { if (properties[field].default !== undefined) { agg[field] = properties[field].default; @@ -61,50 +61,59 @@ function defaultValue({ properties = {} }) { return defVal; } -function mapObjectSchema(events, schema, mapping) { - if (!mapping) { +function mapEvents(events, { properties, items }, mapping) { + if (!mapping || mapping === null) { return events; - } - - let defVal = defaultValue(schema.properties ? schema : schema.items); - if (typeof mapping === "string") { - return events.map(event => { - return Object.assign({}, defVal, { [mapping]: event }); + } else if (typeof mapping === "string") { + return events.map(event => event[mapping]); + } else if (typeof mapping === "function") { + return events.map(event => mapping(event)); + } else if (typeof mapping === "object") { + let defVal = defaultValue( + properties + ? properties + : items && items.properties ? items.properties : {} + ); + let mappedEvents = events.map(event => { + let schemaEvent = Object.keys(mapping).reduce((agg, field) => { + let eventField = mapping[field]; + agg[field] = selectn(eventField, event); + return agg; + }, Object.assign({}, defVal)); + return schemaEvent; }); - } - let mappedEvents = events.map(event => { - let schemaEvent = Object.keys(mapping).reduce((agg, field) => { - let eventField = mapping[field]; - agg[field] = selectn(eventField, event); - return agg; - }, Object.assign({}, defVal)); - return schemaEvent; - }); + return mappedEvents; + } +} - return mappedEvents; +export function mapToSchema(events, schema, mapping) { + let schemaEvents = mapEvents(events, schema, mapping); + return isArraySchema(schema) ? schemaEvents : schemaEvents[0]; } -function mapGeneralSchema(events, mapping, labelFunc) { - if (!mapping) { - return events.map(event => applyLabelKey(event, labelFunc)); +export function mapFromSchema(data, mapping) { + if (!mapping || mapping === null) { + return data; + } else if (typeof mapping === mapping) { + return { [mapping]: data }; + } else if (typeof mapping === "object") { + return Object.keys(mapping).reduce((agg, field) => { + let eventField = mapping[field]; + agg[eventField] = data[field]; + return agg; + }, {}); } else { - return events.map(event => event[mapping]); + return data; } } -export function mapSchema(events, schema, mapping, labelFunc) { - let schemaEvents = isObjectSchema(schema) - ? mapObjectSchema(events, schema, mapping) - : mapGeneralSchema(events, mapping, labelFunc); - - return isArraySchema(schema) ? schemaEvents : schemaEvents[0]; -} - -function toSelected(formData, schema, labelKey) { +function toSelected(formData, schema, mapping, labelKey) { let normFormData = formData ? toArray(formData) : []; if (isObjectSchema(schema)) { - return normFormData.map(selected => applyLabelKey(selected, labelKey)); + return normFormData.map(selected => + applyLabelKey(mapFromSchema(selected, mapping), labelKey) + ); } return normFormData; } @@ -112,14 +121,9 @@ function toSelected(formData, schema, labelKey) { class BaseTypeaheadField extends Component { handleSelectionChange = conf => events => { if (events.length > 0) { - let { mapping, cleanAfterSelection = false, labelKey } = conf; + let { mapping, cleanAfterSelection = false } = conf; let { schema } = this.props; - let schemaEvents = mapSchema( - events, - schema, - mapping, - mapLabelKey(labelKey) - ); + let schemaEvents = mapToSchema(events, schema, mapping); this.props.onChange(schemaEvents); if (cleanAfterSelection) { setTimeout(() => { @@ -137,7 +141,7 @@ export class TypeaheadField extends BaseTypeaheadField { let { uiSchema: { typeahead }, formData, schema } = this.props; let labelKey = mapLabelKey(typeahead.labelKey); - let selected = toSelected(formData, schema, labelKey); + let selected = toSelected(formData, schema, typeahead.mapping, labelKey); let typeConf = Object.assign({}, DEFAULT_OPTIONS, typeahead, { onChange: this.handleSelectionChange(typeahead), @@ -194,7 +198,12 @@ export class AsyncTypeaheadField extends BaseTypeaheadField { let { schema, uiSchema: { asyncTypeahead }, formData } = this.props; let labelKey = mapLabelKey(asyncTypeahead.labelKey); - let selected = toSelected(formData, schema, labelKey); + let selected = toSelected( + formData, + schema, + asyncTypeahead.mapping, + labelKey + ); let typeConf = Object.assign(DEFAULT_OPTIONS, asyncTypeahead, { selected, diff --git a/test/TypeaheadField.test.js b/test/TypeaheadField.test.js index 5703f90..40930d6 100644 --- a/test/TypeaheadField.test.js +++ b/test/TypeaheadField.test.js @@ -1,17 +1,17 @@ -import { mapSchema } from "../src/TypeaheadField"; +import { mapToSchema } from "../src/TypeaheadField"; let strSchema = { type: "string", }; test("map simple string", () => { - expect(mapSchema(["test"], strSchema)).toEqual("test"); + expect(mapToSchema(["test"], strSchema)).toEqual("test"); }); test("map string with label", () => { - expect( - mapSchema([{ name: "test" }], strSchema, undefined, obj => obj.name) - ).toEqual("test"); + expect(mapToSchema([{ name: "test" }], strSchema, obj => obj.name)).toEqual( + "test" + ); }); let objSchema = { @@ -22,14 +22,14 @@ let objSchema = { }; test("map any obj", () => { - expect( - mapSchema([{ name: "test" }], objSchema, undefined, obj => obj.name) - ).toEqual({ name: "test" }); + expect(mapToSchema([{ name: "test" }], objSchema, undefined)).toEqual({ + name: "test", + }); }); test("map obj with mapping", () => { expect( - mapSchema([{ lastName: "Woo", firstName: "Woo" }], objSchema, { + mapToSchema([{ lastName: "Woo", firstName: "Woo" }], objSchema, { name: "firstName", }) ).toEqual({ name: "Woo" }); From a04d7ad8df3402d290168fee8473a35364af61b7 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 15:58:05 +0300 Subject: [PATCH 081/297] #43 allow complicated typeahead --- .../app/typeaheadNonExpandable/uiSchema.js | 36 +++++++++++++++++- src/TableField.js | 2 +- src/TypeaheadField.js | 38 +++++++++++++------ 3 files changed, 63 insertions(+), 13 deletions(-) diff --git a/playground/app/typeaheadNonExpandable/uiSchema.js b/playground/app/typeaheadNonExpandable/uiSchema.js index 39329f5..e8748d2 100644 --- a/playground/app/typeaheadNonExpandable/uiSchema.js +++ b/playground/app/typeaheadNonExpandable/uiSchema.js @@ -1,7 +1,9 @@ export default { medications: { classNames: "col-md-12", - "ui:field": "table", + "ui:field": "compositeArray", + inputField: "typeahead", + arrayField: "table", table: { tableCols: [ { @@ -46,5 +48,37 @@ export default { }, ], }, + typeahead: { + options: [ + { + DrugId: 6963, + DrugName: "dexibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 2377, + DrugName: "ibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 10936, + DrugName: "ibuproxam", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 110394, + DrugName: "NeoProfen (ibuprofen lysn)(PF)", + DrugType: { Id: 2, Name: null }, + }, + ], + labelKey: "DrugName", + bodyContainer: true, + mapping: { + drug: { + drugName: "DrugName", + drugId: "DrugId", + }, + }, + }, }, }; diff --git a/src/TableField.js b/src/TableField.js index 423dd40..aa9e3ce 100644 --- a/src/TableField.js +++ b/src/TableField.js @@ -116,7 +116,7 @@ export function toTableColumns(schema, tableCols = [], fields = {}) { if (tCol && typeof tCol.dataFormat === "string") { let field = tCol.dataFormat; tCol.dataFormat = (cell, row) => { - return row[sCol.dataField][field]; + return row[sCol.dataField] ? row[sCol.dataField][field] : undefined; }; } if (tCol && tCol.field && fields[tCol.field]) { diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index d8fe146..2103c94 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -61,6 +61,19 @@ function defaultValue(properties) { return defVal; } +function mapToObject(event, mapping, defVal) { + let schemaEvent = Object.keys(mapping).reduce((agg, field) => { + let eventField = mapping[field]; + if (typeof eventField === "object") { + agg[field] = mapToObject(event, eventField, {}); + } else { + agg[field] = selectn(eventField, event); + } + return agg; + }, Object.assign({}, defVal)); + return schemaEvent; +} + function mapEvents(events, { properties, items }, mapping) { if (!mapping || mapping === null) { return events; @@ -75,12 +88,7 @@ function mapEvents(events, { properties, items }, mapping) { : items && items.properties ? items.properties : {} ); let mappedEvents = events.map(event => { - let schemaEvent = Object.keys(mapping).reduce((agg, field) => { - let eventField = mapping[field]; - agg[field] = selectn(eventField, event); - return agg; - }, Object.assign({}, defVal)); - return schemaEvent; + return mapToObject(event, mapping, defVal); }); return mappedEvents; @@ -92,17 +100,25 @@ export function mapToSchema(events, schema, mapping) { return isArraySchema(schema) ? schemaEvents : schemaEvents[0]; } +function mapFromObject(data, mapping, defVal) { + return Object.keys(mapping).reduce((agg, field) => { + let eventField = mapping[field]; + if (typeof eventField === "object") { + Object.assign(agg, mapFromObject(data[field], mapping, {})); + } else { + agg[eventField] = data[field]; + } + return agg; + }, defVal); +} + export function mapFromSchema(data, mapping) { if (!mapping || mapping === null) { return data; } else if (typeof mapping === mapping) { return { [mapping]: data }; } else if (typeof mapping === "object") { - return Object.keys(mapping).reduce((agg, field) => { - let eventField = mapping[field]; - agg[eventField] = data[field]; - return agg; - }, {}); + return mapFromObject(data, mapping, {}); } else { return data; } From bfe4609a9841840c363bb0292094cb418887d6ca Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 16:12:14 +0300 Subject: [PATCH 082/297] fix #43 --- README.md | 46 +++++++++++++++++++++++++++++++++++++++++-- src/TypeaheadField.js | 14 ++++++++++--- 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index dda3931..38124d2 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,8 @@ With following options ] ``` +#### Label key + With labelKey `name` there will be 2 options - `Adventures of Huckleberry Finn` - `The Adventures of Tom Sawyer` @@ -204,7 +206,36 @@ With lableKey `{ fields: [ "author", "name" ], separator: " - " }`, options will - `Mark Twain - Adventures of Huckleberry Finn` - `Mark Twain - The Adventures of Tom Sawyer` -Mapping can be specified like this +#### Mapping + +Mapping can be one of +- not specified, in this case selection is sent to the formData as is +- `string` which is field name in typeahead selected object +- `object` with fields corresponding to final schema fields and values, corresponding to fields in typeahead +- `function` which will be called with typeahead selected objects, which ever value you specify will be used + +Mapping as undefined (we accept values as is) +``` +{ + "mapping": undefined +} +``` +would result in +- `{ "name": "Adventures of Huckleberry Finn", "author": "Mark Twain" }` +- `{ "name": "The Adventures of Tom Sawyer", "author": "Mark Twain" }` + +Mapping as string (we want only name of the book) +```json +{ + "mapping": "name" +} +``` +would result in +- `"Adventures of Huckleberry Finn"` +- `"The Adventures of Tom Sawyer"` + + +Mapping as object (we want to change mapping to creator and book) ```json { "mapping": { @@ -213,10 +244,21 @@ Mapping can be specified like this } } ``` -And it would generate 2 values +would result in - `{ book: "Adventures of Huckleberry Finn", creator: "Mark Twain" }` - `{ book: "The Adventures of Tom Sawyer", creator: "Mark Twain" }` +Mapping as function (let's say we want to take a first name of the author) +```js + let uiSchema = { + mapping: (event) => event.creator.split(" ")[0] + } +``` +would result in +- `"Mark"` +- `"Mark"` + + ## Async Typeahead based on [react-bootstrap-typeahead](https://github.com/ericgio/react-bootstrap-typeahead) (`asyncTypeahead`) ### Purpose diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 2103c94..5c8683f 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -78,7 +78,7 @@ function mapEvents(events, { properties, items }, mapping) { if (!mapping || mapping === null) { return events; } else if (typeof mapping === "string") { - return events.map(event => event[mapping]); + return events.map(event => selectn(mapping, event)); } else if (typeof mapping === "function") { return events.map(event => mapping(event)); } else if (typeof mapping === "object") { @@ -174,7 +174,11 @@ TypeaheadField.propTypes = { uiSchema: PropTypes.shape({ typeahead: PropTypes.shape({ options: PropTypes.array.isRequired, - mapping: PropTypes.object, + mapping: PropTypes.oneOfType([ + PropTypes.func, + PropTypes.string, + PropTypes.object, + ]), cleanAfterSelection: PropTypes.bool, }).isRequired, }).isRequired, @@ -240,7 +244,11 @@ AsyncTypeaheadField.propTypes = { asyncTypeahead: PropTypes.shape({ url: PropTypes.string.isRequired, optionsPath: PropTypes.string, - mapping: PropTypes.object, + mapping: PropTypes.oneOfType([ + PropTypes.func, + PropTypes.string, + PropTypes.object, + ]), cleanAfterSelection: PropTypes.bool, search: PropTypes.func, }).isRequired, From 5597d92c7fefea7005d69a5cd5f99424c29ff605 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 16:30:14 +0300 Subject: [PATCH 083/297] #38 --- .../app/typeaheadNonExpandable/schema.js | 30 ++--- .../app/typeaheadNonExpandable/uiSchema.js | 18 +++ src/TableField.js | 26 +++- test/issues/38.test.js | 115 ++++++++++++++++++ 4 files changed, 173 insertions(+), 16 deletions(-) create mode 100644 test/issues/38.test.js diff --git a/playground/app/typeaheadNonExpandable/schema.js b/playground/app/typeaheadNonExpandable/schema.js index 4ba62b3..66ecae6 100644 --- a/playground/app/typeaheadNonExpandable/schema.js +++ b/playground/app/typeaheadNonExpandable/schema.js @@ -9,6 +9,15 @@ export default { required: [], type: "object", properties: { + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + quantity: { + type: "string", + title: "Quantity", + }, drug: { type: "object", properties: { @@ -25,26 +34,17 @@ export default { type: "string", title: "Dosage", }, - quantity: { - type: "string", - title: "Quantity", - }, - unit: { - type: "string", - title: "Units", + startDate: { + type: "date", + title: "Start Date", }, refills: { type: "string", title: "Refills", }, - useGeneric: { - default: true, - type: "boolean", - title: "Use Generic", - }, - startDate: { - type: "date", - title: "Start Date", + unit: { + type: "string", + title: "Units", }, }, }, diff --git a/playground/app/typeaheadNonExpandable/uiSchema.js b/playground/app/typeaheadNonExpandable/uiSchema.js index e8748d2..0d1042e 100644 --- a/playground/app/typeaheadNonExpandable/uiSchema.js +++ b/playground/app/typeaheadNonExpandable/uiSchema.js @@ -46,6 +46,24 @@ export default { }, }, }, + { + dataField: "dosage", + }, + { + dataField: "quantity", + }, + { + dataField: "unit", + }, + { + dataField: "refills", + }, + { + dataField: "useGeneric", + }, + { + dataField: "startDate", + }, ], }, typeahead: { diff --git a/src/TableField.js b/src/TableField.js index aa9e3ce..45e1e9b 100644 --- a/src/TableField.js +++ b/src/TableField.js @@ -101,6 +101,25 @@ function withColumnCss(columns) { return columns; } +function orderColumns(columns, order) { + if (!order || order.length === 0) { + return columns; + } + + let orderedColumns = columns + .filter(({ dataField }) => order.includes(dataField)) + .sort((a, b) => order.indexOf(a.dataField) - order.indexOf(b.dataField)); + if (orderedColumns.length === 0) { + return columns; + } + if (orderedColumns.length === columns.length) { + return orderedColumns; + } + + let nonOrderedColumns = columns.filter(nav => !orderedColumns.includes(nav)); + return orderedColumns.concat(nonOrderedColumns); +} + export function toTableColumns(schema, tableCols = [], fields = {}) { let { items: { properties } } = schema; @@ -111,7 +130,12 @@ export function toTableColumns(schema, tableCols = [], fields = {}) { return { dataField, displayName: title, editable, dataFormat }; }); - let columnsWithOverrides = schemaCols.map(sCol => { + let orderedSchemaColumns = orderColumns( + schemaCols, + tableCols.map(({ dataField }) => dataField) + ); + + let columnsWithOverrides = orderedSchemaColumns.map(sCol => { let tCol = tableCols.find(col => col.dataField === sCol.dataField); if (tCol && typeof tCol.dataFormat === "string") { let field = tCol.dataFormat; diff --git a/test/issues/38.test.js b/test/issues/38.test.js new file mode 100644 index 0000000..1d23476 --- /dev/null +++ b/test/issues/38.test.js @@ -0,0 +1,115 @@ +import React from "react"; +import Form from "react-jsonschema-form"; +import fields from "../../src"; +import renderer from "react-test-renderer"; + +const schema = { + required: [], + type: "object", + properties: { + medications: { + type: "array", + title: "Medications", + items: { + required: [], + type: "object", + properties: { + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + quantity: { + type: "string", + title: "Quantity", + }, + drug: { + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + }, + }, + dosage: { + type: "string", + title: "Dosage", + }, + startDate: { + type: "date", + title: "Start Date", + }, + refills: { + type: "string", + title: "Refills", + }, + unit: { + type: "string", + title: "Units", + }, + }, + }, + }, + }, +}; + +const uiSchema = { + medications: { + classNames: "col-md-12", + "ui:field": "table", + arrayField: "table", + table: { + tableCols: [ + { + dataField: "drug", + dataFormat: "drugName", + }, + { + dataField: "dosage", + }, + { + dataField: "quantity", + }, + { + dataField: "unit", + }, + { + dataField: "refills", + }, + { + dataField: "useGeneric", + }, + { + dataField: "startDate", + }, + ], + }, + }, +}; + +const formData = { + medications: [ + { + useGeneric: true, + drugName: "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", + drugId: 471154, + }, + ], +}; + +test.skip("table order", () => { + const component = renderer.create( + + ); + let tree = component.toJSON(); + expect(tree).toMatchSnapshot(); +}); From 835d98351b23b3fe0653b55083f6e69f31985cdf Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 16:42:26 +0300 Subject: [PATCH 084/297] fix #38 --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/README.md b/README.md index 38124d2..e5bb70a 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,97 @@ let uiSchema = { }; ``` +#### Columns order + +By default order of columns is defined by `schema` properties field order. +It might be not always reliable, so there is a way to override it. +By default the order will follow order of columns in `tableCols` configuration. + + +```js +let schema = { + type: 'object', + properties: { + medications: { + type: 'array', + items: { + type: "object", + properties: { + dosage: { type: "number" }, + name: { type: "string" } + } + } + } + } +}; + +let uiSchema = { + medications: { + "ui:field": "table", + table: { + tableCols: [ + { + dataField: "name", + }, + { + dataField: "dosage", + }, + ], + }, + }, +}; +``` + +Here although in medications property schema `dosage` goes before `name`, it will be shown first due to `tableCols` order of columns. + +#### Cell dataFormat + +react-bootstrap-table provides custom [dataFormat](https://allenfang.github.io/react-bootstrap-table/docs.html#dataFormat) for rendering data in columns. +We needed to support serialized configuration, so we extended native functionality, with string configuration, which translates into field name in the object. + +For example, let's say we have an allergies table, with identifier, which consists of some numeric id and string name. When showing to the user, we want to show only name. Here is how we can do this: + +```js +let schema = { + type: 'object', + properties: { + allergies: { + type: 'array', + items: { + type: "object", + properties: { + identified: { + type: "object", + properties: { + id: { type: "string"}, + name: { type: "string" } + } + }, + added: { type: "date-time" } + } + } + } + } +} + +let uiSchema = { + medications: { + "ui:field": "table", + table: { + tableCols: [ + { + dataField: "identifier", + dataFormat: "name" + }, + { + dataField: "dosage", + }, + ], + }, + }, +}; +``` +In this case dataFormat on identifier field, will translate into selecting name field in identifier object. ## Contribute From 926ff3cf3366e2f3f0d73222177ad652357f7216 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 13 Oct 2017 16:45:09 +0300 Subject: [PATCH 085/297] 0.8.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7cf9b2b..84c3665 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "zboldyga@gmail.com", - "version": "0.8.7", + "version": "0.8.8", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 16b1bc5aa711e5bd40ea84fabff72d3251984703 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 19 Oct 2017 00:59:35 +0300 Subject: [PATCH 086/297] fix #45 --- README.md | 5 + .../app/typeaheadNonExpandable/schema.js | 76 +++---- .../app/typeaheadNonExpandable/uiSchema.js | 192 +++++++++--------- src/CollapsibleField.js | 57 +++++- 4 files changed, 198 insertions(+), 132 deletions(-) diff --git a/README.md b/README.md index e5bb70a..51986f8 100644 --- a/README.md +++ b/README.md @@ -109,8 +109,13 @@ You can customize presentation of collapsible field, with "collapse" object in u - `icon` `object` icons configuration in `enabled` and `disabled` state - `enabled` `string` icon, when the field is shown (default `glyphicon glyphicon-chevron-down`) - `disabled` `string` icon, when field is hidden (default `glyphicon glyphicon-chevron-right`) + - `add` `string` icon, to use in place of an add sign (default `glyphicon glyphicon-plus-sign`) - `separate` `boolean` enable
after collapse menu (default `true`) - `wrapClassName` `string` class name to use on a parent collapse menu div (default `lead`) +- `addTo` `string` array field name, to which icon will be added enables an add icon, that will be shown besides collapsible icon + +Additional feature of the Collapsible field is to allow adding empty value to hidden `array`, it's enabled with `addTo` feature, which can +be either `self` which assumes that Collapsible field is the target array, or it can be a property field. Field `schema` `title` used as a header of the collapsible action. diff --git a/playground/app/typeaheadNonExpandable/schema.js b/playground/app/typeaheadNonExpandable/schema.js index 66ecae6..61eca81 100644 --- a/playground/app/typeaheadNonExpandable/schema.js +++ b/playground/app/typeaheadNonExpandable/schema.js @@ -2,50 +2,54 @@ export default { required: [], type: "object", properties: { - medications: { - type: "array", - title: "Medications", - items: { - required: [], - type: "object", - properties: { - useGeneric: { - default: true, - type: "boolean", - title: "Use Generic", - }, - quantity: { - type: "string", - title: "Quantity", - }, - drug: { + med: { + type: "object", + properties: { + medications: { + type: "array", + items: { + required: [], type: "object", properties: { - drugId: { + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + quantity: { type: "string", + title: "Quantity", + }, + drug: { + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + }, + }, + dosage: { + type: "string", + title: "Dosage", + }, + startDate: { + type: "date", + title: "Start Date", }, - drugName: { + refills: { type: "string", - title: "Drug Name", + title: "Refills", + }, + unit: { + type: "string", + title: "Units", }, }, }, - dosage: { - type: "string", - title: "Dosage", - }, - startDate: { - type: "date", - title: "Start Date", - }, - refills: { - type: "string", - title: "Refills", - }, - unit: { - type: "string", - title: "Units", - }, }, }, }, diff --git a/playground/app/typeaheadNonExpandable/uiSchema.js b/playground/app/typeaheadNonExpandable/uiSchema.js index 0d1042e..a69753a 100644 --- a/playground/app/typeaheadNonExpandable/uiSchema.js +++ b/playground/app/typeaheadNonExpandable/uiSchema.js @@ -1,100 +1,108 @@ export default { - medications: { - classNames: "col-md-12", - "ui:field": "compositeArray", - inputField: "typeahead", - arrayField: "table", - table: { - tableCols: [ - { - dataField: "drug", - field: "typeahead", - dataFormat: "drugName", - className: "col-md-3", - columnClassName: "col-md-3", - editColumnClassName: "col-md-3", - uiSchema: { - typeahead: { - options: [ - { - DrugId: 6963, - DrugName: "dexibuprofen", - DrugType: { Id: 6, Name: null }, - }, - { - DrugId: 2377, - DrugName: "ibuprofen", - DrugType: { Id: 6, Name: null }, - }, - { - DrugId: 10936, - DrugName: "ibuproxam", - DrugType: { Id: 6, Name: null }, - }, - { - DrugId: 110394, - DrugName: "NeoProfen (ibuprofen lysn)(PF)", - DrugType: { Id: 2, Name: null }, + med: { + "ui:field": "collapsible", + "ui:options": { + label: false, + }, + collapse: { + field: "ObjectField", + addTo: "medications", + }, + medications: { + classNames: "col-md-12", + "ui:field": "table", + table: { + tableCols: [ + { + dataField: "drug", + field: "typeahead", + dataFormat: "drugName", + className: "col-md-3", + columnClassName: "col-md-3", + editColumnClassName: "col-md-3", + uiSchema: { + typeahead: { + options: [ + { + DrugId: 6963, + DrugName: "dexibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 2377, + DrugName: "ibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 10936, + DrugName: "ibuproxam", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 110394, + DrugName: "NeoProfen (ibuprofen lysn)(PF)", + DrugType: { Id: 2, Name: null }, + }, + ], + labelKey: "DrugName", + bodyContainer: true, + mapping: { + drugName: "DrugName", + drugId: "DrugId", }, - ], - labelKey: "DrugName", - bodyContainer: true, - mapping: { - drugName: "DrugName", - drugId: "DrugId", }, }, }, - }, - { - dataField: "dosage", - }, - { - dataField: "quantity", - }, - { - dataField: "unit", - }, - { - dataField: "refills", - }, - { - dataField: "useGeneric", - }, - { - dataField: "startDate", - }, - ], - }, - typeahead: { - options: [ - { - DrugId: 6963, - DrugName: "dexibuprofen", - DrugType: { Id: 6, Name: null }, - }, - { - DrugId: 2377, - DrugName: "ibuprofen", - DrugType: { Id: 6, Name: null }, - }, - { - DrugId: 10936, - DrugName: "ibuproxam", - DrugType: { Id: 6, Name: null }, - }, - { - DrugId: 110394, - DrugName: "NeoProfen (ibuprofen lysn)(PF)", - DrugType: { Id: 2, Name: null }, - }, - ], - labelKey: "DrugName", - bodyContainer: true, - mapping: { - drug: { - drugName: "DrugName", - drugId: "DrugId", + { + dataField: "dosage", + }, + { + dataField: "quantity", + }, + { + dataField: "unit", + }, + { + dataField: "refills", + }, + { + dataField: "useGeneric", + }, + { + dataField: "startDate", + }, + ], + }, + typeahead: { + options: [ + { + DrugId: 6963, + DrugName: "dexibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 2377, + DrugName: "ibuprofen", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 10936, + DrugName: "ibuproxam", + DrugType: { Id: 6, Name: null }, + }, + { + DrugId: 110394, + DrugName: "NeoProfen (ibuprofen lysn)(PF)", + DrugType: { Id: 2, Name: null }, + }, + ], + labelKey: "DrugName", + bodyContainer: true, + mapping: { + drug: { + drugName: "DrugName", + drugId: "DrugId", + }, }, }, }, diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 734a5ba..6515dd4 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -1,23 +1,34 @@ import React, { Component } from "react"; +import { + getDefaultFormState, + deepEquals, +} from "react-jsonschema-form/lib/utils"; import PropTypes from "prop-types"; function CollapseMenu(props) { - let { onChange, schema: { title }, collapsed } = props; + let { onChange, onAdd, title, name, collapsed } = props; let { uiSchema: { collapse: { icon: { enabled = "glyphicon glyphicon-chevron-down", disabled = "glyphicon glyphicon-chevron-right", + add = "glyphicon glyphicon-plus-sign", } = {}, separate = true, + addTo, wrapClassName = "lead", }, }, } = props; return (
- {title}  + {title || name}  + {addTo && ( + + + + )} @@ -35,6 +46,36 @@ class CollapsibleField extends Component { this.state = { collapsed }; } + appendToArray = ({ items }, formData = []) => { + let newVal = getDefaultFormState(items, {}); + if (formData.some(v => deepEquals(v, newVal))) { + return formData; + } else { + return formData.concat(newVal); + } + }; + + handleAdd = () => { + let { + schema, + formData, + onChange, + uiSchema: { collapse: { addTo } }, + } = this.props; + if (addTo === "self") { + onChange(this.appendToArray(schema, formData)); + } else { + formData = formData ? formData : {}; + let fieldVal = this.appendToArray( + schema.properties[addTo], + formData[addTo] + ); + let change = Object.assign({}, formData, { [addTo]: fieldVal }); + onChange(change); + } + this.setState({ collapsed: false }); + }; + handleCollapsed = () => { this.setState(function(state) { return { collapsed: !state.collapsed }; @@ -42,17 +83,25 @@ class CollapsibleField extends Component { }; render() { - let { schema, uiSchema, registry: { fields } } = this.props; + let { + schema: { title }, + uiSchema, + registry: { fields }, + name, + } = this.props; let { collapsed } = this.state; let { collapse: { field } } = uiSchema; let CollapseElement = fields[field]; + title = uiSchema["ui:title"] ? uiSchema["ui:title"] : title ? title : name; + return (
From deb77354b14be30f4ed8afc6eeccd9e3c7e7297c Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 19 Oct 2017 01:00:02 +0300 Subject: [PATCH 087/297] 0.8.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 84c3665..2c0bf86 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "zboldyga@gmail.com", - "version": "0.8.8", + "version": "0.8.9", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 8cae65ddc57566ee84d4c75660a4085ae3244bb0 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 24 Oct 2017 11:15:15 +0300 Subject: [PATCH 088/297] fix #49 --- .babelrc | 2 +- README.md | 65 ++++++ package.json | 7 +- playground/app/App.js | 2 +- playground/app/collapsible/index.js | 10 + playground/app/collapsible/schema.js | 31 +++ playground/app/collapsible/uiSchema.js | 26 +++ playground/app/order/index.js | 65 ++++++ playground/app/tableTypeahead/index.js | 8 + playground/app/tableTypeahead/schema.js | 16 ++ playground/app/tableTypeahead/uiSchema.js | 27 +++ playground/app/typeahead/uiSchema.js | 4 +- scenario/1_typeahead_with_string.md | 3 + src/TableField.js | 233 ---------------------- src/index.js | 4 +- src/table/actionHeaderFactory.js | 52 +++++ src/table/columnHeadersFactory.js | 176 ++++++++++++++++ src/table/index.js | 65 ++++++ src/table/tableConfFactory.js | 49 +++++ test/issues/49.test.js | 80 ++++++++ 20 files changed, 682 insertions(+), 243 deletions(-) create mode 100644 playground/app/collapsible/index.js create mode 100644 playground/app/collapsible/schema.js create mode 100644 playground/app/collapsible/uiSchema.js create mode 100644 playground/app/order/index.js create mode 100644 playground/app/tableTypeahead/index.js create mode 100644 playground/app/tableTypeahead/schema.js create mode 100644 playground/app/tableTypeahead/uiSchema.js create mode 100644 scenario/1_typeahead_with_string.md delete mode 100644 src/TableField.js create mode 100644 src/table/actionHeaderFactory.js create mode 100644 src/table/columnHeadersFactory.js create mode 100644 src/table/index.js create mode 100644 src/table/tableConfFactory.js create mode 100644 test/issues/49.test.js diff --git a/.babelrc b/.babelrc index 6c894b4..7ba07a4 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,5 @@ { - "presets": [ "react", "es2015", "stage-2" ], + "presets": [ "env", "react" ], "plugins": [ "transform-object-rest-spread", "transform-class-properties" diff --git a/README.md b/README.md index 51986f8..5d52b99 100644 --- a/README.md +++ b/README.md @@ -487,6 +487,71 @@ let uiSchema = { ``` In this case dataFormat on identifier field, will translate into selecting name field in identifier object. +### Additional column actions + +If you need to define additional column actions to the left or to the right of column content you can do that in +a standard way with `uiSchema` with `leftActions` or `rightActions` defined + +```js +let uiSchema = { + table: { + leftActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus" + } + ], + rightActions: [ + { + action: "delete", + icon: "glyphicon glyphicon-minus", + text: "Remove" + } + ] + } + } +``` + +Both left and right actions can accept full column configuration, that will be appended to the rendered column, + +For example, to define delete on each column, you can: +```js +let uiSchema = { + table: { + leftActions: [ + { + dataField: "delete-button", + dataFormat: (cell, row, enumObject, rowIndex, formData, onChange) => ( + onChange(formData.filter((el, i) => rowIndex !== i))}>"Remove All" + ), + editable: false, + displayName: "Left Panel" + }, + ], + rightActions: [ + { + action: "delete", + icon: "glyphicon glyphicon-minus", + text: "Delete", + displayName: "Right Panel" + } + ] + } + } +``` + +In left panel, we have defined delete with a standard `react-bootstrap-table` format, the only difference is dataFormat signature changed, +appending original formData and onChange callback to relay changes to the listening component. + +Right panel is defined with small syntactic sugar to simpify action defintion +- `action` can be either `delete` string or function, that is equivalent on onClick function with `cell`, `row`, `enumObject`, `rowIndex`, `formData`, `onChange` parameters +- `icon` icon to use for the column +- `text` text to use for the column +- `displayName` column name + ## Contribute - Issue Tracker: github.com/RxNT/react-jsonschema-extras/issues diff --git a/package.json b/package.json index 2c0bf86..14ac698 100644 --- a/package.json +++ b/package.json @@ -31,10 +31,11 @@ "git add" ] }, - "main": "lib/index.js", + "main": "src/index.js", "files": [ + "lib", "dist", - "lib" + "src" ], "engineStrict": false, "engines": { @@ -63,9 +64,7 @@ "babel-polyfill": "^6.26.0", "babel-preset-env": "^1.6.0", "babel-preset-es2015": "^6.24.1", - "babel-preset-jason": "^3.1.0", "babel-preset-react": "^6.24.1", - "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.26.0", "bootstrap": "^3.3.7", "coveralls": "^3.0.0", diff --git a/playground/app/App.js b/playground/app/App.js index a148e71..32d2afa 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -2,7 +2,7 @@ import React from "react"; import fields from "../../src/index"; import Form from "react-jsonschema-form"; -import typeahead from "./typeahead"; +import typeahead from "./order"; import typeaheadNonExpandable from "./typeaheadNonExpandable"; import rte from "./rte"; import dx from "./dx"; diff --git a/playground/app/collapsible/index.js b/playground/app/collapsible/index.js new file mode 100644 index 0000000..51fe5a2 --- /dev/null +++ b/playground/app/collapsible/index.js @@ -0,0 +1,10 @@ +import schema from "./schema"; +import uiSchema from "./uiSchema"; + +export default Object.assign({}, schema, uiSchema, { + formData: { + strArr: ["some"], + objArr: [{ name: "other" }], + compArr: [{ name: "other" }], + }, +}); diff --git a/playground/app/collapsible/schema.js b/playground/app/collapsible/schema.js new file mode 100644 index 0000000..05dedec --- /dev/null +++ b/playground/app/collapsible/schema.js @@ -0,0 +1,31 @@ +export default { + schema: { + type: "object", + properties: { + strArr: { + type: "array", + items: { + type: "string", + }, + }, + objArr: { + type: "array", + items: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + }, + compArr: { + type: "array", + items: { + type: "object", + properties: { + name: { type: "string" }, + }, + }, + }, + }, + }, +}; diff --git a/playground/app/collapsible/uiSchema.js b/playground/app/collapsible/uiSchema.js new file mode 100644 index 0000000..7812b38 --- /dev/null +++ b/playground/app/collapsible/uiSchema.js @@ -0,0 +1,26 @@ +const fieldProps = { + classNames: "col-md-12", + "ui:field": "collapsible", + collapse: { + addTo: "self", + field: "typeahead", + }, + typeahead: { + options: [{ name: "some" }, { name: "other" }], + allowNew: true, + labelKey: "name", + minLength: 1, + }, +}; + +export default { + uiSchema: { + strArr: fieldProps, + objArr: fieldProps, + compArr: Object.assign({}, fieldProps, { + "ui:field": "collapsible", + inputField: "typeahead", + arrayField: "table", + }), + }, +}; diff --git a/playground/app/order/index.js b/playground/app/order/index.js new file mode 100644 index 0000000..186486b --- /dev/null +++ b/playground/app/order/index.js @@ -0,0 +1,65 @@ +const formData = { + orders: [ + { order: "sdw" }, + { order: "Metabolic Panel" }, + { order: "CAT, Head with contrast" }, + ], +}; + +const schema = { + type: "object", + properties: { + orders: { + type: "array", + title: "Orders", + items: { + type: "object", + properties: { + order: { + type: "string", + title: "Order", + }, + }, + }, + }, + }, +}; + +const uiSchema = { + "ui:order": ["orders"], + orders: { + classNames: "col-md-12", + "ui:field": "collapsible", + collapse: { + field: "table", + collapsed: false, + icon: { + add: "glyphicon glyphicon-plus-sign glyPhiconGreen", + }, + addTo: "self", + }, + table: { + leftActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus", + displayName: "Hello", + }, + ], + rightActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus", + }, + ], + }, + }, +}; + +export default { schema, uiSchema, formData }; diff --git a/playground/app/tableTypeahead/index.js b/playground/app/tableTypeahead/index.js new file mode 100644 index 0000000..20ee320 --- /dev/null +++ b/playground/app/tableTypeahead/index.js @@ -0,0 +1,8 @@ +import schema from "./schema"; +import uiSchema from "./uiSchema"; + +export default Object.assign({}, schema, uiSchema, { + formData: { + orders: [{ order: "some" }], + }, +}); diff --git a/playground/app/tableTypeahead/schema.js b/playground/app/tableTypeahead/schema.js new file mode 100644 index 0000000..7bd2526 --- /dev/null +++ b/playground/app/tableTypeahead/schema.js @@ -0,0 +1,16 @@ +export default { + schema: { + type: "object", + properties: { + orders: { + type: "array", + items: { + type: "object", + properties: { + order: { type: "string" }, + }, + }, + }, + }, + }, +}; diff --git a/playground/app/tableTypeahead/uiSchema.js b/playground/app/tableTypeahead/uiSchema.js new file mode 100644 index 0000000..aa52fab --- /dev/null +++ b/playground/app/tableTypeahead/uiSchema.js @@ -0,0 +1,27 @@ +const fieldProps = { + typeahead: { + options: [{ name: "some" }, { name: "other" }], + allowNew: true, + labelKey: "name", + minLength: 1, + bodyContainer: true, + mapping: "name", + }, +}; + +export default { + uiSchema: { + orders: { + "ui:field": "table", + table: { + tableCols: [ + { + dataField: "order", + field: "typeahead", + uiSchema: fieldProps, + }, + ], + }, + }, + }, +}; diff --git a/playground/app/typeahead/uiSchema.js b/playground/app/typeahead/uiSchema.js index 1c7336b..6b4f43f 100644 --- a/playground/app/typeahead/uiSchema.js +++ b/playground/app/typeahead/uiSchema.js @@ -11,8 +11,8 @@ const fieldProps = { export default { uiSchema: { - str: fieldProps, - strArr: fieldProps, + str: Object.assign({}, fieldProps, { mapping: "name" }), + strArr: Object.assign({}, fieldProps, { mapping: "name" }), obj: fieldProps, objArr: fieldProps, compArr: Object.assign({}, fieldProps, { diff --git a/scenario/1_typeahead_with_string.md b/scenario/1_typeahead_with_string.md new file mode 100644 index 0000000..9f9668e --- /dev/null +++ b/scenario/1_typeahead_with_string.md @@ -0,0 +1,3 @@ +Use case + +Adding typeahead string \ No newline at end of file diff --git a/src/TableField.js b/src/TableField.js deleted file mode 100644 index 45e1e9b..0000000 --- a/src/TableField.js +++ /dev/null @@ -1,233 +0,0 @@ -import React, { Component } from "react"; -import { BootstrapTable, TableHeaderColumn } from "react-bootstrap-table"; - -const DEFAULT_TABLE_CONF = { - cellEdit: { - mode: "click", - blurToSave: true, - }, - options: {}, - selectRow: { - mode: "checkbox", - }, - deleteRow: true, - handleConfirmDeleteRow: next => next(), -}; - -const POSITION_KEY = "_position"; - -function addIndex(data) { - return data.map((el, i) => Object.assign({}, el, { [POSITION_KEY]: i })); -} - -function removeIndex(data) { - return data.map(el => { - let newEl = Object.assign({}, el); - delete newEl[POSITION_KEY]; - return newEl; - }); -} - -function toDataFormat(fieldProp) { - if (fieldProp.enum && fieldProp.enumNames) { - return cell => { - return fieldProp.enumNames[fieldProp.enum.indexOf(cell)]; - }; - } - return undefined; -} - -function toEditable(fieldProp) { - if (fieldProp.enum) { - if (fieldProp.enumNames) { - let values = fieldProp.enum.map((value, i) => { - let text = fieldProp.enumNames[i]; - return { value, text }; - }); - return { - type: "select", - options: { values }, - }; - } else { - return { - type: "select", - options: { values: fieldProp.enum }, - }; - } - } else if (fieldProp.type === "boolean") { - return { - type: "checkbox", - }; - } else if (fieldProp.type === "date-time") { - return { - type: "datetime", - }; - } else if (fieldProp.type === "date") { - return { - type: "date", - }; - } else if (fieldProp.type === "time") { - return { - type: "time", - }; - } - return true; -} - -function setColumnCSSIfMissing(col, css) { - col.className = col.className ? col.className : css; - col.columnClassName = col.columnClassName - ? col.columnClassName - : col.className; - col.editColumnClassName = col.editColumnClassName - ? col.editColumnClassName - : col.className; -} - -function withColumnCss(columns) { - let shownColumns = columns.filter(({ hidden }) => !hidden); - let numCols = shownColumns.length; - let colSize = Math.floor(12 / numCols); - if (colSize === 0) { - return columns; - } - - let colCss = `col-md-${colSize}`; - shownColumns.forEach((col, i) => { - if (i !== 0) { - setColumnCSSIfMissing(col, colCss); - } - }); - return columns; -} - -function orderColumns(columns, order) { - if (!order || order.length === 0) { - return columns; - } - - let orderedColumns = columns - .filter(({ dataField }) => order.includes(dataField)) - .sort((a, b) => order.indexOf(a.dataField) - order.indexOf(b.dataField)); - if (orderedColumns.length === 0) { - return columns; - } - if (orderedColumns.length === columns.length) { - return orderedColumns; - } - - let nonOrderedColumns = columns.filter(nav => !orderedColumns.includes(nav)); - return orderedColumns.concat(nonOrderedColumns); -} - -export function toTableColumns(schema, tableCols = [], fields = {}) { - let { items: { properties } } = schema; - - let schemaCols = Object.keys(properties).map(dataField => { - let { title } = properties[dataField]; - let editable = toEditable(properties[dataField]); - let dataFormat = toDataFormat(properties[dataField]); - return { dataField, displayName: title, editable, dataFormat }; - }); - - let orderedSchemaColumns = orderColumns( - schemaCols, - tableCols.map(({ dataField }) => dataField) - ); - - let columnsWithOverrides = orderedSchemaColumns.map(sCol => { - let tCol = tableCols.find(col => col.dataField === sCol.dataField); - if (tCol && typeof tCol.dataFormat === "string") { - let field = tCol.dataFormat; - tCol.dataFormat = (cell, row) => { - return row[sCol.dataField] ? row[sCol.dataField][field] : undefined; - }; - } - if (tCol && tCol.field && fields[tCol.field]) { - let FieldEditor = fields[tCol.field]; - let fieldUISchema = tCol.uiSchema; - let fieldSchema = properties[tCol.dataField]; - tCol.customEditor = { - getElement: (onUpdate, props) => { - return ( - - ); - }, - }; - } - return Object.assign(sCol, tCol); - }); - - return withColumnCss(columnsWithOverrides); -} - -class TableField extends Component { - toTableConf = () => { - let { uiSchema: { table = {} }, formData = [] } = this.props; - - if (table.keyField === undefined || table.keyField === POSITION_KEY) { - table.keyField = POSITION_KEY; - formData = addIndex(formData); - } - - let tableConf = Object.assign({}, DEFAULT_TABLE_CONF, table, { - data: formData, - }); - - tableConf.cellEdit.afterSaveCell = this.handleCellSave; - tableConf.options.afterDeleteRow = this.handleRowsDelete; - - return tableConf; - }; - - handleCellSave = updRow => { - let { keyField, data } = this.toTableConf(); - - const targetKey = updRow[keyField]; - let updTable = data.map( - row => (row[keyField] === targetKey ? updRow : row) - ); - - this.props.onChange(removeIndex(updTable)); - return updTable; - }; - - handleRowsDelete = removedKeys => { - const { keyField, data } = this.toTableConf(); - - let filteredRows = data.filter(row => { - let rowKey = row[keyField]; - return !removedKeys.includes(rowKey); - }); - - this.props.onChange(removeIndex(filteredRows)); - }; - - render() { - let tableConf = this.toTableConf(); - let columns = toTableColumns( - this.props.schema, - tableConf.tableCols, - this.props.registry.fields - ); - - return ( - - {columns.map((column, i) => { - return ( - - {column.displayName} - - ); - })} - - ); - } -} - -export default TableField; diff --git a/src/index.js b/src/index.js index afe41be..1e48792 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,4 @@ -import TableField from "./TableField"; +import table from "./table"; import { AsyncTypeaheadField, TypeaheadField } from "./TypeaheadField"; import CompositeArrayField from "./CompositeArrayField"; import AltInputField from "./AltInputField"; @@ -6,7 +6,7 @@ import CollapsibleField from "./CollapsibleField"; import RTEField from "./RTEField"; export default { - table: TableField, + table, asyncTypeahead: AsyncTypeaheadField, typeahead: TypeaheadField, collapsible: CollapsibleField, diff --git a/src/table/actionHeaderFactory.js b/src/table/actionHeaderFactory.js new file mode 100644 index 0000000..8d17176 --- /dev/null +++ b/src/table/actionHeaderFactory.js @@ -0,0 +1,52 @@ +import React from "react"; + +function actionFactory(action) { + if (action === "delete") { + return (cell, row, enumObject, rowIndex, formData, onChange) => { + let newFormData = formData.slice(0); + newFormData.splice(rowIndex, 1); + onChange(newFormData); + }; + } else if (typeof action === "function") { + return action; + } else { + return undefined; + } +} + +function actionColumnFrom({ action, icon, text }) { + let handleClick = actionFactory(action); + if (!handleClick) { + return {}; + } + return { + dataField: icon, + dataFormat: (cell, row, enumObject, rowIndex, formData, onChange) => ( + + handleClick(cell, row, enumObject, rowIndex, formData, onChange)}> + + {text} + + ), + editable: false, + }; +} + +const actionToCol = (formData, onChange) => actionConf => { + let genericConf = actionColumnFrom(actionConf); + let realDataFormat = actionConf.dataFormat + ? actionConf.dataFormat + : genericConf.dataFormat; + return Object.assign({}, actionConf, genericConf, { + dataFormat: (cell, row, enumObject, rowIndex) => + realDataFormat(cell, row, enumObject, rowIndex, formData, onChange), + }); +}; + +export default function actionHeadersFrom(uiSchema, formData, onChange) { + let { table: { rightActions = [], leftActions = [] } } = uiSchema; + let rightColumns = rightActions.map(actionToCol(formData, onChange)); + let leftColumns = leftActions.map(actionToCol(formData, onChange)); + return { rightColumns, leftColumns }; +} diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js new file mode 100644 index 0000000..01e83ee --- /dev/null +++ b/src/table/columnHeadersFactory.js @@ -0,0 +1,176 @@ +import React from "react"; +import actionHeaderFrom from "./actionHeaderFactory"; + +function toDataFormat(fieldProp) { + if (fieldProp.enum && fieldProp.enumNames) { + return cell => { + return fieldProp.enumNames[fieldProp.enum.indexOf(cell)]; + }; + } + return undefined; +} + +function toEditable(fieldProp) { + if (fieldProp.enum) { + if (fieldProp.enumNames) { + let values = fieldProp.enum.map((value, i) => { + let text = fieldProp.enumNames[i]; + return { value, text }; + }); + return { + type: "select", + options: { values }, + }; + } else { + return { + type: "select", + options: { values: fieldProp.enum }, + }; + } + } else if (fieldProp.type === "boolean") { + return { + type: "checkbox", + }; + } else if (fieldProp.type === "date-time") { + return { + type: "datetime", + }; + } else if (fieldProp.type === "date") { + return { + type: "date", + }; + } else if (fieldProp.type === "time") { + return { + type: "time", + }; + } + return true; +} + +function columnHeadersFromSchema(schema) { + let { items: { properties } } = schema; + let schemaCols = Object.keys(properties).map(dataField => { + let { title } = properties[dataField]; + let editable = toEditable(properties[dataField]); + let dataFormat = toDataFormat(properties[dataField]); + return { dataField, displayName: title, editable, dataFormat }; + }); + + return schemaCols; +} + +function overrideColDataFormat(colConf) { + if (typeof colConf.dataFormat === "string") { + let field = colConf.dataFormat; + colConf.dataFormat = (cell, row) => { + return row[colConf.dataField] ? row[colConf.dataField][field] : undefined; + }; + } +} + +function overrideColEditable(colConf, { items: { properties } }, fields) { + if (colConf.field && fields[colConf.field]) { + let FieldEditor = fields[colConf.field]; + let fieldUISchema = colConf.uiSchema; + let fieldSchema = properties[colConf.dataField]; + colConf.customEditor = { + getElement: (onUpdate, props) => { + return ( + + ); + }, + }; + } +} + +function overrideColumns(columns, schema, uiSchema, fields) { + let { table: { tableCols = [] } = {} } = uiSchema; + + let columnsWithOverrides = columns.map(col => { + let colConf = tableCols.find(col => col.dataField === col.dataField); + if (!colConf) { + return col; + } + overrideColDataFormat(colConf); + overrideColEditable(colConf, schema, fields); + return Object.assign(col, colConf); + }); + + return columnsWithOverrides; +} + +function orderColumns(columns, uiSchema) { + let { table: { tableCols = [] } = {} } = uiSchema; + let order = tableCols.map(({ dataField }) => dataField); + + if (!order || order.length === 0) { + return columns; + } + + let orderedColumns = columns + .filter(({ dataField }) => order.includes(dataField)) + .sort((a, b) => order.indexOf(a.dataField) - order.indexOf(b.dataField)); + if (orderedColumns.length === 0) { + return columns; + } + if (orderedColumns.length === columns.length) { + return orderedColumns; + } + + let nonOrderedColumns = columns.filter(nav => !orderedColumns.includes(nav)); + return orderedColumns.concat(nonOrderedColumns); +} + +function setColumnCSSIfMissing(col, css) { + let { + className = css, + columnClassName = css, + editColumnClassName = css, + } = col; + Object.assign(col, { className, columnClassName, editColumnClassName }); +} + +function withColumnCss(columns) { + let shownColumns = columns.filter(({ hidden }) => !hidden); + let numCols = shownColumns.length; + let colSize = Math.floor(12 / numCols); + if (colSize === 0) { + return columns; + } + + let colCss = `col-md-${colSize}`; + shownColumns.forEach((col, i) => { + if (i !== 0) { + setColumnCSSIfMissing(col, colCss); + } + }); + return columns; +} + +export default function columnHeadersFrom( + schema, + uiSchema, + fields = {}, + formData, + onChange +) { + let allColumns = columnHeadersFromSchema(schema); + let orderedColumns = orderColumns(allColumns, uiSchema); + let withOverrides = overrideColumns(orderedColumns, schema, uiSchema, fields); + let columnsWithCSS = withColumnCss(withOverrides); + let { rightColumns, leftColumns } = actionHeaderFrom( + uiSchema, + formData, + onChange + ); + + leftColumns.forEach(col => columnsWithCSS.unshift(col)); + rightColumns.forEach(col => columnsWithCSS.push(col)); + + return columnsWithCSS; +} diff --git a/src/table/index.js b/src/table/index.js new file mode 100644 index 0000000..aeeafdc --- /dev/null +++ b/src/table/index.js @@ -0,0 +1,65 @@ +import React, { Component } from "react"; +import { BootstrapTable, TableHeaderColumn } from "react-bootstrap-table"; +import tableConfFrom, { removePosition } from "./tableConfFactory"; +import columnHeadersFrom from "./columnHeadersFactory"; + +class TableField extends Component { + handleCellSave = updRow => { + let { keyField, data } = this.tableConf; + + const targetKey = updRow[keyField]; + let updTable = data.map( + row => (row[keyField] === targetKey ? updRow : row) + ); + + this.props.onChange(removePosition(updTable)); + }; + + handleRowsDelete = removedKeys => { + const { keyField, data } = this.tableConf; + + let filteredRows = data.filter(row => { + let rowKey = row[keyField]; + return !removedKeys.includes(rowKey); + }); + + this.props.onChange(removePosition(filteredRows)); + }; + + render() { + let { + uiSchema, + schema, + formData, + registry: { fields }, + onChange, + } = this.props; + this.tableConf = tableConfFrom( + uiSchema, + formData, + this.handleCellSave, + this.handleRowsDelete + ); + let columns = columnHeadersFrom( + schema, + uiSchema, + fields, + formData, + onChange + ); + + return ( + + {columns.map((column, i) => { + return ( + + {column.displayName} + + ); + })} + + ); + } +} + +export default TableField; diff --git a/src/table/tableConfFactory.js b/src/table/tableConfFactory.js new file mode 100644 index 0000000..f04457a --- /dev/null +++ b/src/table/tableConfFactory.js @@ -0,0 +1,49 @@ +const POSITION_KEY = "_position"; + +const DEFAULT_TABLE_CONF = { + cellEdit: { + mode: "click", + blurToSave: true, + }, + options: {}, + handleConfirmDeleteRow: next => next(), +}; + +export function addPosition(data) { + return data.map((el, i) => Object.assign({}, el, { [POSITION_KEY]: i })); +} + +export function removePosition(data) { + if (Array.isArray(data)) { + return data.map(el => removePosition(el)); + } else { + let dataCopy = Object.assign({}, data); + delete dataCopy[POSITION_KEY]; + return dataCopy; + } +} + +export default function tableConfFrom( + { table = {} }, + formData = [], + afterSaveCell, + afterDeleteRow +) { + if (table.keyField === undefined || table.keyField === POSITION_KEY) { + table.keyField = POSITION_KEY; + formData = addPosition(formData); + } + + let tableConf = Object.assign( + { + data: formData, + }, + DEFAULT_TABLE_CONF, + table + ); + + tableConf.cellEdit.afterSaveCell = afterSaveCell; + tableConf.options.afterDeleteRow = afterDeleteRow; + + return tableConf; +} diff --git a/test/issues/49.test.js b/test/issues/49.test.js new file mode 100644 index 0000000..33731d0 --- /dev/null +++ b/test/issues/49.test.js @@ -0,0 +1,80 @@ +import React from "react"; +import Form from "react-jsonschema-form"; +import fields from "../../src"; +import renderer from "react-test-renderer"; + +const formData = { + orders: [ + { order: "sdw" }, + { order: "Metabolic Panel" }, + { order: "CAT, Head with contrast" }, + ], +}; + +const schema = { + type: "object", + properties: { + orders: { + type: "array", + title: "Orders", + items: { + type: "object", + properties: { + order: { + type: "string", + title: "Order", + }, + }, + }, + }, + }, +}; + +const uiSchema = { + "ui:order": ["orders"], + orders: { + classNames: "col-md-12", + "ui:field": "collapsible", + collapse: { + field: "table", + collapsed: false, + icon: { + add: "glyphicon glyphicon-plus-sign glyPhiconGreen", + }, + addTo: "self", + }, + table: { + leftActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus", + }, + ], + rightActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus", + }, + ], + }, + }, +}; + +test.skip("left and right panels", () => { + const component = renderer.create( + + ); + let tree = component.toJSON(); + expect(tree).toMatchSnapshot(); +}); From efe804340e0386cc42e56595aec0a8d93e44a238 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 24 Oct 2017 11:18:11 +0300 Subject: [PATCH 089/297] 0.8.10 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 14ac698..2454751 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "name": "react-jsonschema-form-extras", "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, - "author": "zboldyga@gmail.com", - "version": "0.8.9", + "author": "mavarazy@gmail.com", + "version": "0.8.10", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 79a8327a40b9a7442c9e0509ca3be810d1e6fc36 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 24 Oct 2017 11:23:53 +0300 Subject: [PATCH 090/297] fixing package.json --- package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2454751..5a274e4 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.10", + "version": "0.8.11", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", @@ -31,11 +31,10 @@ "git add" ] }, - "main": "src/index.js", + "main": "lib/index.js", "files": [ "lib", - "dist", - "src" + "dist" ], "engineStrict": false, "engines": { From e8881991c5a4e3ef131eb2d1fba49253370a15fe Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 24 Oct 2017 12:49:46 +0300 Subject: [PATCH 091/297] #49 fixing function error --- playground/app/App.js | 2 + playground/app/medications/index.js | 4 + playground/app/medications/schema.js | 143 ++++++++++++++++ playground/app/medications/uiSchema.js | 228 +++++++++++++++++++++++++ src/table/actionHeaderFactory.js | 2 +- src/table/columnHeadersFactory.js | 4 +- src/table/index.js | 1 + 7 files changed, 382 insertions(+), 2 deletions(-) create mode 100644 playground/app/medications/index.js create mode 100644 playground/app/medications/schema.js create mode 100644 playground/app/medications/uiSchema.js diff --git a/playground/app/App.js b/playground/app/App.js index 32d2afa..d211dde 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -3,6 +3,7 @@ import fields from "../../src/index"; import Form from "react-jsonschema-form"; import typeahead from "./order"; +import medications from "./medications"; import typeaheadNonExpandable from "./typeaheadNonExpandable"; import rte from "./rte"; import dx from "./dx"; @@ -16,6 +17,7 @@ export default function App() { fields={fields} onChange={handleChange} /> + diff --git a/playground/app/medications/index.js b/playground/app/medications/index.js new file mode 100644 index 0000000..2b438d1 --- /dev/null +++ b/playground/app/medications/index.js @@ -0,0 +1,4 @@ +import schema from "./schema"; +import uiSchema from "./uiSchema"; + +export default { schema, uiSchema }; diff --git a/playground/app/medications/schema.js b/playground/app/medications/schema.js new file mode 100644 index 0000000..282a816 --- /dev/null +++ b/playground/app/medications/schema.js @@ -0,0 +1,143 @@ +export default { + required: [], + type: "object", + properties: { + medications_no_active: { + type: "boolean", + title: "NO ACTIVE MEDICATIONS", + }, + medications: { + type: "array", + title: "Medications", + items: { + required: [], + type: "object", + properties: { + drug: { + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + }, + }, + dosage: { + type: "string", + title: "Dosage", + }, + quantity: { + type: "string", + title: "Quantity", + }, + unit: { + type: "string", + title: "Units", + enum: [ + "Ampule", + "Applicator", + "Applicatorful", + "Bag", + "Bar", + "Bead", + "Blister", + "Block", + "Bolus", + "Bottle", + "Box", + "Can", + "Canister", + "Caplet", + "Capsule", + "Carton", + "Cartridge", + "Case", + "Cassette", + "Container", + "Cylinder", + "Disk", + "Dose Pack", + "Dual Pack", + "Film", + "Fluid Ounce", + "Gallon", + "Gram", + "Gum", + "Implant", + "Inhalation", + "Inhaler Refill", + "Inhaler", + "Insert", + "Intravenous Bag", + "Kilogram", + "Kit", + "Liter", + "Lozenge", + "Metric Drop", + "Milligram", + "Milliliter", + "Millimeter", + "Nebule", + "Ocular System", + "Ounce", + "Package", + "Pad", + "Paper", + "Patch", + "Pint", + "Pouch", + "Pound", + "Puff", + "Quart", + "Ring", + "Sachet", + "Scoopful", + "Sponge", + "Spray", + "Stick", + "Strip", + "Suppository", + "Swab", + "Syringe", + "Tablespoon", + "Tablet", + "Tabminder", + "Tampon", + "Teaspoon", + "Tray", + "Troche", + "Tube", + "Vial", + "Wafer", + "Each", + "French", + "Lancet", + "Milliequivalent", + "Needle Free Injection", + "Pen Needle", + "Pre-filled Pen Syringe", + "Pump", + "Unspecified", + ], + }, + refills: { + type: "string", + title: "Refills", + }, + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + startDate: { + type: "date", + title: "Start Date", + }, + }, + }, + }, + }, +}; diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js new file mode 100644 index 0000000..0e65296 --- /dev/null +++ b/playground/app/medications/uiSchema.js @@ -0,0 +1,228 @@ +export default { + medications: { + classNames: "col-md-12", + "ui:field": "collapsible", + collapse: { + field: "table", + addTo: "self", + }, + "ui:options": { + label: false, + }, + table: { + tableCols: [ + { + dataField: "drug", + dataFormat: "drugName", + field: "typeahead", + uiSchema: { + typeahead: { + options: [ + { + DrugId: 471154, + DrugName: + "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", + }, + { + DrugId: 471211, + DrugName: "AmLactin Distribution Pack 12 %-12 % topical kit", + }, + { + DrugId: 237930, + DrugName: "ceftibuten 180 mg/5 mL oral suspension", + }, + { + DrugId: 195800, + DrugName: "ceftibuten 400 mg capsule", + }, + { + DrugId: 445980, + DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension", + }, + { + DrugId: 273242, + DrugName: + "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + }, + { + DrugId: 436727, + DrugName: "Children's Ibuprofen 100 mg/5 mL oral suspension", + }, + { + DrugId: 557123, + DrugName: "Comfort Pac-Ibuprofen 800 mg kit", + }, + { + DrugId: 219132, + DrugName: "dibucaine 1 % topical ointment", + }, + { + DrugId: 292795, + DrugName: "dibucaine HCl (bulk) 100 % powder", + }, + { + DrugId: 554201, + DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet", + }, + { + DrugId: 469644, + DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet", + }, + { + DrugId: 156812, + DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet", + }, + { + DrugId: 290029, + DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + }, + { DrugId: 554209, DrugName: "Ibudone 10 mg-200 mg tablet" }, + { + DrugId: 554208, + DrugName: "Ibudone 5 mg-200 mg tablet", + }, + { DrugId: 227645, DrugName: "ibuprofen (bulk) 100 % powder" }, + { + DrugId: 298404, + DrugName: "ibuprofen 100 mg chewable tablet", + }, + { DrugId: 234997, DrugName: "ibuprofen 100 mg tablet" }, + { + DrugId: 278995, + DrugName: "ibuprofen 100 mg/5 mL oral suspension", + }, + { DrugId: 182478, DrugName: "ibuprofen 200 mg capsule" }, + { + DrugId: 256217, + DrugName: "ibuprofen 200 mg tablet", + }, + { DrugId: 250621, DrugName: "ibuprofen 400 mg tablet" }, + { + DrugId: 237650, + DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension", + }, + { DrugId: 275877, DrugName: "ibuprofen 600 mg tablet" }, + { + DrugId: 173420, + DrugName: "ibuprofen 800 mg tablet", + }, + { + DrugId: 449425, + DrugName: + "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet", + }, + { + DrugId: 472085, + DrugName: "Ibuprofen IB 100 mg chewable tablet", + }, + { + DrugId: 281309, + DrugName: "Ibuprofen IB 200 mg tablet", + }, + { + DrugId: 471498, + DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet", + }, + { + DrugId: 545552, + DrugName: + "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution", + }, + { + DrugId: 581894, + DrugName: "Ibuprofen PM 200 mg-25 mg capsule", + }, + { + DrugId: 557264, + DrugName: "Ibuprofen PM 200 mg-38 mg tablet", + }, + { + DrugId: 550378, + DrugName: + "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet", + }, + { + DrugId: 472620, + DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet", + }, + { + DrugId: 281153, + DrugName: "ibutilide fumarate 0.1 mg/mL intravenous solution", + }, + { + DrugId: 449511, + DrugName: + "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension", + }, + { + DrugId: 472123, + DrugName: + "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + }, + { + DrugId: 454370, + DrugName: "squaric acid dibutylest.(bulk) 100 % liquid", + }, + { + DrugId: 185726, + DrugName: "squaric acid dibutylester powder", + }, + ], + mapping: { + drugName: "DrugName", + drugId: "DrugId", + }, + minLength: 2, + labelKey: "DrugName", + bodyContainer: true, + cleanAfterSelection: true, + }, + }, + }, + { + dataField: "dosage", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "quantity", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "unit", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "refills", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "useGeneric", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + ], + rightActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus", + }, + ], + }, + }, + medications_no_active: { + classNames: "col-md-6", + nav: ["medications"], + }, +}; diff --git a/src/table/actionHeaderFactory.js b/src/table/actionHeaderFactory.js index 8d17176..e1b0c68 100644 --- a/src/table/actionHeaderFactory.js +++ b/src/table/actionHeaderFactory.js @@ -45,7 +45,7 @@ const actionToCol = (formData, onChange) => actionConf => { }; export default function actionHeadersFrom(uiSchema, formData, onChange) { - let { table: { rightActions = [], leftActions = [] } } = uiSchema; + let { table: { rightActions = [], leftActions = [] } = {} } = uiSchema; let rightColumns = rightActions.map(actionToCol(formData, onChange)); let leftColumns = leftActions.map(actionToCol(formData, onChange)); return { rightColumns, leftColumns }; diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index 01e83ee..950cfd3 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -92,7 +92,9 @@ function overrideColumns(columns, schema, uiSchema, fields) { let { table: { tableCols = [] } = {} } = uiSchema; let columnsWithOverrides = columns.map(col => { - let colConf = tableCols.find(col => col.dataField === col.dataField); + let colConf = tableCols.find( + overrideCol => overrideCol.dataField === col.dataField + ); if (!colConf) { return col; } diff --git a/src/table/index.js b/src/table/index.js index aeeafdc..10c8c64 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -34,6 +34,7 @@ class TableField extends Component { registry: { fields }, onChange, } = this.props; + this.tableConf = tableConfFrom( uiSchema, formData, From a90329a45c170f1c4a4d9e9b18a671da1445c951 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 24 Oct 2017 19:00:59 +0300 Subject: [PATCH 092/297] 0.8.16 terrible --- package.json | 54 ++++++++++---------- playground/app/medications/schema.js | 17 +++---- playground/app/medications/uiSchema.js | 8 ++- src/table/columnHeadersFactory.js | 67 +++++++++++++------------ src/table/index.js | 8 ++- test/table/columnHeadersFactory.test.js | 13 +++++ 6 files changed, 92 insertions(+), 75 deletions(-) create mode 100644 test/table/columnHeadersFactory.test.js diff --git a/package.json b/package.json index 5a274e4..1b014cd 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.11", + "version": "0.8.16", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", @@ -42,11 +42,9 @@ "node": ">=8.0.0" }, "peerDependencies": { - "prop-types": "^15.5.10", - "react": "^15.0.0" - }, - "dependencies": { - "react-bootstrap-table": "^4.0.6", + "prop-types": "^15.6.0", + "react": "^15.6.0", + "react-bootstrap-table": "^4.1.0", "react-bootstrap-typeahead": "v1.4.2", "react-rte": "^0.15.0", "selectn": "^1.1.2" @@ -55,52 +53,52 @@ "atob": "^2.0.3", "babel-cli": "^6.26.0", "babel-core": "^6.26.0", - "babel-eslint": "^7.2.3", - "babel-jest": "^20.0.3", + "babel-eslint": "^8.0.1", + "babel-jest": "^21.2.0", "babel-loader": "^7.1.2", + "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-polyfill": "^6.26.0", - "babel-preset-env": "^1.6.0", + "babel-preset-env": "^1.6.1", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", + "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.26.0", "bootstrap": "^3.3.7", "coveralls": "^3.0.0", - "cross-env": "^5.0.5", - "css-loader": "^0.28.5", - "eslint": "^4.5.0", - "eslint-plugin-jest": "^20.0.3", - "eslint-plugin-react": "^7.3.0", + "cross-env": "^5.1.0", + "css-loader": "^0.28.7", + "eslint": "^4.9.0", + "eslint-plugin-jest": "^21.2.0", + "eslint-plugin-react": "^7.4.0", "eslint-plugin-standard": "^3.0.1", "estraverse": "^4.2.0", "estraverse-fb": "^1.3.2", "exit-hook": "^1.1.1", - "express": "^4.15.4", + "express": "^4.16.2", "extract-text-webpack-plugin": "^3.0.1", "gh-pages": "^1.0.0", "has-flag": "^2.0.0", "html": "1.0.0", "husky": "^0.14.3", - "jest": "^20.0.4", + "jest": "^21.2.1", "jsdom": "^11.3.0", - "lint-staged": "^4.0.3", + "lint-staged": "^4.3.0", "prettier": "^1.7.4", - "react": "^15.6.1", - "react-addons-test-utils": "^15.6.2", - "react-codemirror": "^1.0.0", - "react-dom": "^15.6.1", - "react-jsonschema-form": "^0.49.0", - "react-test-renderer": "^15.6.1", + "react": "^15.6.0", + "react-dom": "^15.6.0", + "react-jsonschema-form": "^1.0.0", + "react-test-renderer": "^15.6.0", "react-transform-catch-errors": "^1.0.2", "react-transform-hmr": "^1.0.4", "regenerator-runtime": "^0.11.0", "rimraf": "^2.6.2", - "sinon": "^3.2.1", - "style-loader": "^0.18.2", - "webpack": "^3.6.0", - "webpack-dev-server": "^2.9.1", - "webpack-hot-middleware": "^2.19.1" + "sinon": "^4.0.1", + "style-loader": "^0.19.0", + "webpack": "^3.8.1", + "webpack-dev-server": "^2.9.3", + "webpack-hot-middleware": "^2.20.0" }, "directories": { "test": "test" diff --git a/playground/app/medications/schema.js b/playground/app/medications/schema.js index 282a816..b027a57 100644 --- a/playground/app/medications/schema.js +++ b/playground/app/medications/schema.js @@ -13,17 +13,12 @@ export default { required: [], type: "object", properties: { - drug: { - type: "object", - properties: { - drugId: { - type: "string", - }, - drugName: { - type: "string", - title: "Drug Name", - }, - }, + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", }, dosage: { type: "string", diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 0e65296..2c3a14e 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -4,6 +4,7 @@ export default { "ui:field": "collapsible", collapse: { field: "table", + collapsed: false, addTo: "self", }, "ui:options": { @@ -12,8 +13,11 @@ export default { table: { tableCols: [ { - dataField: "drug", - dataFormat: "drugName", + dataField: "drugId", + hidden: true, + }, + { + dataField: "drugName", field: "typeahead", uiSchema: { typeahead: { diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index 950cfd3..e8b6195 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -1,16 +1,16 @@ import React from "react"; import actionHeaderFrom from "./actionHeaderFactory"; -function toDataFormat(fieldProp) { +const toDataFormat = fieldProp => { if (fieldProp.enum && fieldProp.enumNames) { return cell => { return fieldProp.enumNames[fieldProp.enum.indexOf(cell)]; }; } return undefined; -} +}; -function toEditable(fieldProp) { +const toEditable = fieldProp => { if (fieldProp.enum) { if (fieldProp.enumNames) { let values = fieldProp.enum.map((value, i) => { @@ -45,9 +45,9 @@ function toEditable(fieldProp) { }; } return true; -} +}; -function columnHeadersFromSchema(schema) { +const columnHeadersFromSchema = schema => { let { items: { properties } } = schema; let schemaCols = Object.keys(properties).map(dataField => { let { title } = properties[dataField]; @@ -57,38 +57,37 @@ function columnHeadersFromSchema(schema) { }); return schemaCols; -} +}; -function overrideColDataFormat(colConf) { +export function overrideColDataFormat(colConf) { if (typeof colConf.dataFormat === "string") { - let field = colConf.dataFormat; - colConf.dataFormat = (cell, row) => { - return row[colConf.dataField] ? row[colConf.dataField][field] : undefined; + const { dataField, dataFormat: field } = colConf; + colConf.dataFormat = function(cell, row) { + return row[dataField] ? row[dataField][field] : undefined; }; + colConf.dataFormat.bind(this); } } -function overrideColEditable(colConf, { items: { properties } }, fields) { +const overrideColEditable = (colConf, { items: { properties } }, fields) => { if (colConf.field && fields[colConf.field]) { let FieldEditor = fields[colConf.field]; let fieldUISchema = colConf.uiSchema; let fieldSchema = properties[colConf.dataField]; colConf.customEditor = { - getElement: (onUpdate, props) => { - return ( - - ); - }, + getElement: (onUpdate, props) => ( + + ), }; } -} +}; -function overrideColumns(columns, schema, uiSchema, fields) { +const overrideColumns = (columns, schema, uiSchema, fields) => { let { table: { tableCols = [] } = {} } = uiSchema; let columnsWithOverrides = columns.map(col => { @@ -104,9 +103,9 @@ function overrideColumns(columns, schema, uiSchema, fields) { }); return columnsWithOverrides; -} +}; -function orderColumns(columns, uiSchema) { +const orderColumns = (columns, uiSchema) => { let { table: { tableCols = [] } = {} } = uiSchema; let order = tableCols.map(({ dataField }) => dataField); @@ -126,18 +125,18 @@ function orderColumns(columns, uiSchema) { let nonOrderedColumns = columns.filter(nav => !orderedColumns.includes(nav)); return orderedColumns.concat(nonOrderedColumns); -} +}; -function setColumnCSSIfMissing(col, css) { +const setColumnCSSIfMissing = (col, css) => { let { className = css, columnClassName = css, editColumnClassName = css, } = col; Object.assign(col, { className, columnClassName, editColumnClassName }); -} +}; -function withColumnCss(columns) { +const withColumnCss = columns => { let shownColumns = columns.filter(({ hidden }) => !hidden); let numCols = shownColumns.length; let colSize = Math.floor(12 / numCols); @@ -152,15 +151,15 @@ function withColumnCss(columns) { } }); return columns; -} +}; -export default function columnHeadersFrom( +const columnHeadersFrom = ( schema, uiSchema, fields = {}, formData, onChange -) { +) => { let allColumns = columnHeadersFromSchema(schema); let orderedColumns = orderColumns(allColumns, uiSchema); let withOverrides = overrideColumns(orderedColumns, schema, uiSchema, fields); @@ -175,4 +174,6 @@ export default function columnHeadersFrom( rightColumns.forEach(col => columnsWithCSS.push(col)); return columnsWithCSS; -} +}; + +export default columnHeadersFrom; diff --git a/src/table/index.js b/src/table/index.js index 10c8c64..2c164fd 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -4,9 +4,15 @@ import tableConfFrom, { removePosition } from "./tableConfFactory"; import columnHeadersFrom from "./columnHeadersFactory"; class TableField extends Component { - handleCellSave = updRow => { + handleCellSave = (updRow, cellName, cellValue) => { let { keyField, data } = this.tableConf; + // Small hack to support object returned from async autocomplete + // Don't judge me too hard + if (cellValue[cellName]) { + Object.assign(updRow, cellValue); + } + const targetKey = updRow[keyField]; let updTable = data.map( row => (row[keyField] === targetKey ? updRow : row) diff --git a/test/table/columnHeadersFactory.test.js b/test/table/columnHeadersFactory.test.js new file mode 100644 index 0000000..60fbaa1 --- /dev/null +++ b/test/table/columnHeadersFactory.test.js @@ -0,0 +1,13 @@ +import { overrideColDataFormat } from "../../src/table/columnHeadersFactory"; + +test("Create override function", () => { + let colConf = { + dataField: "drug", + dataFormat: "drugName", + }; + overrideColDataFormat(colConf); + + let dataF = colConf.dataFormat; + expect(dataF({}, { drug: { drugName: "Ibuprophen" } })).toEqual("Ibuprophen"); + expect(dataF({}, { drug: { drugName: "Asprin" } })).toEqual("Asprin"); +}); From 6e70548741fef10374f92f0d0cc8ea97522cd975 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 26 Oct 2017 23:03:28 +0300 Subject: [PATCH 093/297] fix #50 --- package.json | 4 ++++ playground/app/medications/schema.js | 7 ++++--- src/table/columnHeadersFactory.js | 10 +++++++--- src/table/index.js | 20 ++++++++++++++++++++ 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 1b014cd..5a0599e 100644 --- a/package.json +++ b/package.json @@ -87,12 +87,16 @@ "lint-staged": "^4.3.0", "prettier": "^1.7.4", "react": "^15.6.0", + "react-bootstrap-table": "^4.1.0", + "react-bootstrap-typeahead": "v1.4.2", + "react-rte": "^0.15.0", "react-dom": "^15.6.0", "react-jsonschema-form": "^1.0.0", "react-test-renderer": "^15.6.0", "react-transform-catch-errors": "^1.0.2", "react-transform-hmr": "^1.0.4", "regenerator-runtime": "^0.11.0", + "selectn": "^1.1.2", "rimraf": "^2.6.2", "sinon": "^4.0.1", "style-loader": "^0.19.0", diff --git a/playground/app/medications/schema.js b/playground/app/medications/schema.js index b027a57..65f3f47 100644 --- a/playground/app/medications/schema.js +++ b/playground/app/medications/schema.js @@ -21,11 +21,11 @@ export default { title: "Drug Name", }, dosage: { - type: "string", + type: "number", title: "Dosage", }, quantity: { - type: "string", + type: "number", title: "Quantity", }, unit: { @@ -128,7 +128,8 @@ export default { title: "Use Generic", }, startDate: { - type: "date", + type: "string", + format: "date", title: "Start Date", }, }, diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index e8b6195..bf3f3b8 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -31,18 +31,22 @@ const toEditable = fieldProp => { return { type: "checkbox", }; - } else if (fieldProp.type === "date-time") { + } else if (fieldProp.format === "date-time") { return { type: "datetime", }; - } else if (fieldProp.type === "date") { + } else if (fieldProp.format === "date") { return { type: "date", }; - } else if (fieldProp.type === "time") { + } else if (fieldProp.format === "time") { return { type: "time", }; + } else if (fieldProp.type === "number") { + return { + type: "number", + }; } return true; }; diff --git a/src/table/index.js b/src/table/index.js index 2c164fd..cdd00a4 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -3,10 +3,23 @@ import { BootstrapTable, TableHeaderColumn } from "react-bootstrap-table"; import tableConfFrom, { removePosition } from "./tableConfFactory"; import columnHeadersFrom from "./columnHeadersFactory"; +function convertFields(cellValue, { type }) { + if (type === "boolean") { + return cellValue === "true"; + } else if (type === "number") { + return parseFloat(cellValue); + } + return cellValue; +} + class TableField extends Component { handleCellSave = (updRow, cellName, cellValue) => { let { keyField, data } = this.tableConf; + updRow[cellName] = convertFields( + cellValue, + this.props.schema.items.properties[cellName] + ); // Small hack to support object returned from async autocomplete // Don't judge me too hard if (cellValue[cellName]) { @@ -21,6 +34,11 @@ class TableField extends Component { this.props.onChange(removePosition(updTable)); }; + beforeSaveCell = (row, cellName, cellValue) => { + console.log(row, cellName, cellValue); + return true; + }; + handleRowsDelete = removedKeys => { const { keyField, data } = this.tableConf; @@ -47,6 +65,8 @@ class TableField extends Component { this.handleCellSave, this.handleRowsDelete ); + + this.tableConf.cellEdit.beforeSaveCell = this.beforeSaveCell; let columns = columnHeadersFrom( schema, uiSchema, From 26603be62943520c2e07f3738b5ceab7ae36fcd3 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 26 Oct 2017 23:47:11 +0300 Subject: [PATCH 094/297] 0.8.18 --- package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5a0599e..b4caac6 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.16", + "version": "0.8.18", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", @@ -46,7 +46,9 @@ "react": "^15.6.0", "react-bootstrap-table": "^4.1.0", "react-bootstrap-typeahead": "v1.4.2", - "react-rte": "^0.15.0", + "react-rte": "^0.15.0" + }, + "dependencies": { "selectn": "^1.1.2" }, "devDependencies": { From 071cc39b8edcec7c2a2e257e2487b620ac77da09 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 3 Nov 2017 15:59:07 +0300 Subject: [PATCH 095/297] Updating dependencies --- package.json | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index b4caac6..a4f06f4 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ }, "peerDependencies": { "prop-types": "^15.6.0", - "react": "^15.6.0", + "react": "^16.0.0", "react-bootstrap-table": "^4.1.0", "react-bootstrap-typeahead": "v1.4.2", "react-rte": "^0.15.0" @@ -53,8 +53,8 @@ }, "devDependencies": { "atob": "^2.0.3", - "babel-cli": "^6.26.0", - "babel-core": "^6.26.0", + "babel-cli": "^6.0.0", + "babel-core": "^6.0.0", "babel-eslint": "^8.0.1", "babel-jest": "^21.2.0", "babel-loader": "^7.1.2", @@ -75,8 +75,6 @@ "eslint-plugin-jest": "^21.2.0", "eslint-plugin-react": "^7.4.0", "eslint-plugin-standard": "^3.0.1", - "estraverse": "^4.2.0", - "estraverse-fb": "^1.3.2", "exit-hook": "^1.1.1", "express": "^4.16.2", "extract-text-webpack-plugin": "^3.0.1", @@ -88,19 +86,19 @@ "jsdom": "^11.3.0", "lint-staged": "^4.3.0", "prettier": "^1.7.4", - "react": "^15.6.0", - "react-bootstrap-table": "^4.1.0", + "react": "^16.0.0", + "react-bootstrap-table": "^4.1.1", "react-bootstrap-typeahead": "v1.4.2", - "react-rte": "^0.15.0", - "react-dom": "^15.6.0", + "react-dom": "^16.0.0", "react-jsonschema-form": "^1.0.0", - "react-test-renderer": "^15.6.0", + "react-rte": "^0.15.0", + "react-test-renderer": "^16.0.0", "react-transform-catch-errors": "^1.0.2", "react-transform-hmr": "^1.0.4", "regenerator-runtime": "^0.11.0", - "selectn": "^1.1.2", "rimraf": "^2.6.2", - "sinon": "^4.0.1", + "selectn": "^1.1.2", + "sinon": "^4.1.1", "style-loader": "^0.19.0", "webpack": "^3.8.1", "webpack-dev-server": "^2.9.3", From 9f4792ef32bc1b2c8f5d0c4bff68c0b523bfa9bc Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 3 Nov 2017 15:59:50 +0300 Subject: [PATCH 096/297] v0.8.19 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a4f06f4..d587c3e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.18", + "version": "0.8.19", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 6cc22d7d46b8e67947fef56d738e782e3c24e944 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 3 Nov 2017 16:29:24 +0300 Subject: [PATCH 097/297] Fixing publishing error --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d587c3e..82a582e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.19", + "version": "0.8.21", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From a6772c14e7deb8cae28f12f534c0f3084fc5c12f Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 10 Nov 2017 16:48:02 +0300 Subject: [PATCH 098/297] fix #51 --- playground/app/medications/index.js | 6 +++++- src/CompositeArrayField.js | 4 ++-- src/table/columnHeadersFactory.js | 14 +++++++++++--- src/table/index.js | 26 +++++++++++++------------- 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/playground/app/medications/index.js b/playground/app/medications/index.js index 2b438d1..a06fef8 100644 --- a/playground/app/medications/index.js +++ b/playground/app/medications/index.js @@ -1,4 +1,8 @@ import schema from "./schema"; import uiSchema from "./uiSchema"; -export default { schema, uiSchema }; +export default { + schema, + uiSchema, + formData: { medications: [{ useGeneric: false }] }, +}; diff --git a/src/CompositeArrayField.js b/src/CompositeArrayField.js index 1643c66..381007c 100644 --- a/src/CompositeArrayField.js +++ b/src/CompositeArrayField.js @@ -21,10 +21,10 @@ class CompositeArrayField extends Component { let ArrayElement = fields[arrayField]; return (
-
+
-
+
diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index bf3f3b8..a97d2c2 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -3,9 +3,17 @@ import actionHeaderFrom from "./actionHeaderFactory"; const toDataFormat = fieldProp => { if (fieldProp.enum && fieldProp.enumNames) { - return cell => { - return fieldProp.enumNames[fieldProp.enum.indexOf(cell)]; - }; + return cell => fieldProp.enumNames[fieldProp.enum.indexOf(cell)]; + } else if (fieldProp.type === "boolean") { + return cell => ( +
+ +
+ ); } return undefined; }; diff --git a/src/table/index.js b/src/table/index.js index cdd00a4..53f915f 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -13,13 +13,18 @@ function convertFields(cellValue, { type }) { } class TableField extends Component { - handleCellSave = (updRow, cellName, cellValue) => { + constructor(props) { + super(props); + + this.handleCellSave = this.handleCellSave.bind(this); + this.handleRowsDelete = this.handleRowsDelete.bind(this); + } + + handleCellSave(updRow, cellName, cellValue) { let { keyField, data } = this.tableConf; - updRow[cellName] = convertFields( - cellValue, - this.props.schema.items.properties[cellName] - ); + let fieldSchema = this.props.schema.items.properties[cellName]; + updRow[cellName] = convertFields(cellValue, fieldSchema); // Small hack to support object returned from async autocomplete // Don't judge me too hard if (cellValue[cellName]) { @@ -32,14 +37,9 @@ class TableField extends Component { ); this.props.onChange(removePosition(updTable)); - }; - - beforeSaveCell = (row, cellName, cellValue) => { - console.log(row, cellName, cellValue); - return true; - }; + } - handleRowsDelete = removedKeys => { + handleRowsDelete(removedKeys) { const { keyField, data } = this.tableConf; let filteredRows = data.filter(row => { @@ -48,7 +48,7 @@ class TableField extends Component { }); this.props.onChange(removePosition(filteredRows)); - }; + } render() { let { From ed525dbde4b94bbd0ed85c37f2dd0e15b3767f67 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 10 Nov 2017 17:12:01 +0300 Subject: [PATCH 099/297] 0.8.22 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 82a582e..ef6811f 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.21", + "version": "0.8.22", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 4d90ce778872745210bb190888889e0f16bc00c4 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 10 Nov 2017 17:47:12 +0300 Subject: [PATCH 100/297] #51 prevent errors --- package.json | 2 +- src/table/columnHeadersFactory.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ef6811f..4f1f06f 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.22", + "version": "0.8.23", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index a97d2c2..7548ff7 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -10,6 +10,7 @@ const toDataFormat = fieldProp => { {}} style={{ position: "relative" }} />
From dba0ec864a46c0f78b4b4c82c8292876e11c553a Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 14 Nov 2017 14:23:42 +0300 Subject: [PATCH 101/297] #52 adding addElement to the scope --- playground/app/medications/uiSchema.js | 8 ++++ src/CollapsibleField.js | 56 +++++++++++++++++--------- 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 2c3a14e..06378d6 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -1,3 +1,5 @@ +import React from "react"; + export default { medications: { classNames: "col-md-12", @@ -6,6 +8,12 @@ export default { field: "table", collapsed: false, addTo: "self", + addElement: (schema, uiSchema, onSubmit) => () => ( + + ), }, "ui:options": { label: false, diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 6515dd4..f19d9c3 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -46,8 +46,7 @@ class CollapsibleField extends Component { this.state = { collapsed }; } - appendToArray = ({ items }, formData = []) => { - let newVal = getDefaultFormState(items, {}); + appendToArray = (formData, newVal) => { if (formData.some(v => deepEquals(v, newVal))) { return formData; } else { @@ -55,24 +54,35 @@ class CollapsibleField extends Component { } }; + doAdd = (field, formData, newVal) => { + if (field === "self") { + this.props.onChange(this.appendToArray(formData, newVal)); + } else { + let fieldVal = this.appendToArray(formData[field]); + let change = Object.assign({}, formData, { [field]: fieldVal }); + this.props.onChange(change); + } + }; + handleAdd = () => { - let { - schema, - formData, - onChange, - uiSchema: { collapse: { addTo } }, - } = this.props; - if (addTo === "self") { - onChange(this.appendToArray(schema, formData)); + let { schema, uiSchema, formData } = this.props; + let { collapse: { addTo, addElement } } = uiSchema; + + if (addElement) { + let onSubmit = newVal => { + this.setState({ AddElement: undefined }); + this.doAdd(addTo, formData, newVal); + }; + let AddElement = addElement(schema, uiSchema, onSubmit); + this.setState({ AddElement }); } else { - formData = formData ? formData : {}; - let fieldVal = this.appendToArray( - schema.properties[addTo], - formData[addTo] - ); - let change = Object.assign({}, formData, { [addTo]: fieldVal }); - onChange(change); + let newVal = + addTo === "self" + ? getDefaultFormState(schema.items, {}) + : getDefaultFormState(schema.properties[addTo].items, {}); + this.doAdd(addTo, formData, newVal); } + this.setState({ collapsed: false }); }; @@ -89,7 +99,7 @@ class CollapsibleField extends Component { registry: { fields }, name, } = this.props; - let { collapsed } = this.state; + let { collapsed, AddElement } = this.state; let { collapse: { field } } = uiSchema; let CollapseElement = fields[field]; @@ -105,6 +115,7 @@ class CollapsibleField extends Component { onChange={this.handleCollapsed} />
+ {AddElement && } {!collapsed && }
@@ -116,6 +127,15 @@ CollapsibleField.propTypes = { uiSchema: PropTypes.shape({ collapse: PropTypes.shape({ field: PropTypes.string.isRequired, + icon: PropTypes.shape({ + enabled: PropTypes.string, + disabled: PropTypes.string, + add: PropTypes.string, + }), + separate: PropTypes.boolean, + addTo: PropTypes.string, + addElement: PropTypes.function, + wrapClassName: PropTypes.string, }).isRequired, }).isRequired, registry: PropTypes.shape({ From 18917a1ddeb3b23d90878101707205b69387af92 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 14 Nov 2017 14:56:22 +0300 Subject: [PATCH 102/297] #52 This is a temporary experimental solution --- README.md | 46 +++++++++++++++++++++++++++++++++++++++++ src/CollapsibleField.js | 43 +++++++++++++++++++++++++++----------- 2 files changed, 77 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5d52b99..8b784a8 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Coverage Status](https://coveralls.io/repos/github/RxNT/react-jsonschema-form-extras/badge.svg)](https://coveralls.io/github/RxNT/react-jsonschema-form-extras) [![npm version](https://badge.fury.io/js/react-jsonschema-form-extras.svg)](https://badge.fury.io/js/react-jsonschema-form-extras) + # Catalogue This project provides light integration over established React components, @@ -16,6 +17,48 @@ All configurations you can specify in original projects, can be reused here. - RTE, based on [react-rte](https://github.com/sstur/react-rte) (`ui:field` > `rte`) - Tables, based on [react-bootstrap-table](https://github.com/AllenFang/react-bootstrap-table) (`ui:field` > `table`) +## Table of Contents + + - [Use](#use) + - [Composite array field (compositeArray)](#composite-array-field-compositearray) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [Collapsible fields (collapsible)](#collapsible-fields-collapsible) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [Alternative input fields (altInput)](#alternative-input-fields-altinput) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [Typeahead, based on react-bootstrap-typeahead (typeahead)](#typeahead-based-on-react-bootstrap-typeahead-typeahead) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [Label key](#label-key) + - [Mapping](#mapping) + - [Async Typeahead based on react-bootstrap-typeahead (asyncTypeahead)](#async-typeahead-based-on-react-bootstrap-typeahead-asynctypeahead) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [RTE, based on react-rte (rte)](#rte-based-on-react-rte-rte) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [Tables, based on react-bootstrap-table (table)](#tables-based-on-react-bootstrap-table-table) + - [Purpose](#purpose) + - [Use](#use) + - [Properties](#properties) + - [Columns order](#columns-order) + - [Cell dataFormat](#cell-dataformat) + - [Additional column actions](#additional-column-actions) + - [Contribute](#contribute) + - [Support](#support) + - [License](#license) + +--- + ## Use This project uses internal react-jsonschema-form extension mechanism, through ui:field option in uiSchema. @@ -113,6 +156,9 @@ You can customize presentation of collapsible field, with "collapse" object in u - `separate` `boolean` enable
after collapse menu (default `true`) - `wrapClassName` `string` class name to use on a parent collapse menu div (default `lead`) - `addTo` `string` array field name, to which icon will be added enables an add icon, that will be shown besides collapsible icon +- `addElement` (experimental) representation element for add function (for example if you want to show modal on add icon press, here where this would be) + - `function(schema, uiSchema, onChange)` that returns React Component to render for add function + - `string` `field` definition from `react-jsonschema-form` catalogue Additional feature of the Collapsible field is to allow adding empty value to hidden `array`, it's enabled with `addTo` feature, which can be either `self` which assumes that Collapsible field is the target array, or it can be a property field. diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index f19d9c3..5c75c4c 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -65,21 +65,40 @@ class CollapsibleField extends Component { }; handleAdd = () => { - let { schema, uiSchema, formData } = this.props; + let { schema, uiSchema, formData, registry: { fields } } = this.props; let { collapse: { addTo, addElement } } = uiSchema; + let fieldSchema = + addTo === "self" ? schema.items : schema.properties[addTo].items; + let fieldUiSchema = addTo === "self" ? uiSchema : uiSchema[addTo]; + if (addElement) { - let onSubmit = newVal => { - this.setState({ AddElement: undefined }); - this.doAdd(addTo, formData, newVal); - }; - let AddElement = addElement(schema, uiSchema, onSubmit); - this.setState({ AddElement }); + if (typeof addElement === "function") { + let onSubmit = newVal => { + this.setState({ AddElement: undefined }); + this.doAdd(addTo, formData, newVal); + }; + let AddElement = addElement(fieldSchema, fieldUiSchema, onSubmit); + this.setState({ AddElement }); + } else { + let FieldElement = fields[addElement]; + let onBlur = newVal => { + this.setState({ AddElement: undefined }); + this.doAdd(addTo, formData, newVal); + }; + let AddElement = () => ( + { + onBlur(formData); + }} + /> + ); + this.setState({ AddElement }); + } } else { - let newVal = - addTo === "self" - ? getDefaultFormState(schema.items, {}) - : getDefaultFormState(schema.properties[addTo].items, {}); + let newVal = getDefaultFormState(fieldSchema, {}); this.doAdd(addTo, formData, newVal); } @@ -134,7 +153,7 @@ CollapsibleField.propTypes = { }), separate: PropTypes.boolean, addTo: PropTypes.string, - addElement: PropTypes.function, + addElement: PropTypes.oneOfType([PropTypes.string, PropTypes.string]), wrapClassName: PropTypes.string, }).isRequired, }).isRequired, From 153d20e573c6e768162b3158774f5083da23b12c Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 14 Nov 2017 14:58:20 +0300 Subject: [PATCH 103/297] 0.8.24 --- .gitignore | 3 - package-lock.json | 7296 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 7297 insertions(+), 4 deletions(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index c87fe93..dbea1b5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,6 @@ dist lib yarn.lock -package-lock.json - - # Numerous always-ignore extensions *.diff *.err diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5ce53d8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7296 @@ +{ + "name": "react-jsonschema-form-extras", + "version": "0.8.24", + "lockfileVersion": 1, + "dependencies": { + "@types/node": { + "version": "6.0.90", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.90.tgz", + "integrity": "sha512-tXoGRVdi7wZX7P1VWoV9Wfk0uYDOAHdEYXAttuWgSrN76Q32wQlSrMX0Rgyv3RTEaQY2ZLQrzYHVM2e8rfo8sA==", + "dev": true + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true + }, + "acorn": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", + "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.4.tgz", + "integrity": "sha1-Pa+ai2ciEpn9ro2C0RftjmyAJEs=", + "dev": true + }, + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true + }, + "app-root-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", + "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true + }, + "babel-code-frame": { + "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 + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true + }, + "babel-eslint": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", + "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "dev": true + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true + }, + "babel-helper-define-map": { + "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 + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true + }, + "babel-helper-regex": { + "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 + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true + }, + "babel-jest": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", + "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=", + "dev": true + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "dev": true + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true + }, + "babel-plugin-add-module-exports": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz", + "integrity": "sha1-mumh9KjcZ/DN7E9K7aHkOl/2XiU=", + "dev": true + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true + }, + "babel-plugin-dev-expression": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.1.tgz", + "integrity": "sha1-1Ke+7++7UOPyc0mQqCokhs+eue4=", + "dev": true + }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true + }, + "babel-plugin-jest-hoist": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", + "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=", + "dev": true + }, + "babel-plugin-jsx-fragment": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jsx-fragment/-/babel-plugin-jsx-fragment-4.0.3.tgz", + "integrity": "sha1-eNHqZhhQFDcKdgvJizWrjxQQTZI=", + "dev": true + }, + "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 + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "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 + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "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 + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true + }, + "babel-plugin-transform-es2015-block-scoping": { + "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 + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "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 + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true + }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true + }, + "babel-plugin-transform-object-assign": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz", + "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=", + "dev": true + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true + }, + "babel-plugin-transform-regenerator": { + "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 + }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "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 + } + } + }, + "babel-preset-env": { + "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 + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true + }, + "babel-preset-jason": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/babel-preset-jason/-/babel-preset-jason-3.1.1.tgz", + "integrity": "sha512-9sSRTcRRi9Gzibv4pGeyEKulB/NtzGSCrbhWMZAhh2C471wOvPex6G/9T2qRggMINnyblFjHy93mpTs5D0nnyA==", + "dev": true + }, + "babel-preset-jest": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", + "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=", + "dev": true + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "base64url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", + "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true + }, + "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 + }, + "binary-extensions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", + "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", + "dev": true + }, + "blacklist": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/blacklist/-/blacklist-1.1.4.tgz", + "integrity": "sha1-st0J1hd2JbLKppg1o3somV+povI=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true + }, + "bootstrap": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", + "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true + }, + "brackets2dots": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brackets2dots/-/brackets2dots-1.1.0.tgz", + "integrity": "sha1-Pz1AN1/GYM4P0AT6J9Z7NPlGmsM=" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "dev": true + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true + }, + "browserslist": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.5.1.tgz", + "integrity": "sha512-jAvM2ku7YDJ+leAq3bFH1DE0Ylw+F+EQDq4GkqZfgPEqpWYw9ofQH85uKSB9r3Tv7XDbfqVtE+sdvKJW7IlPJA==", + "dev": true + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "build": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/build/-/build-0.1.4.tgz", + "integrity": "sha1-cH/gJv/O3crL/c3zVur9pk8VEEY=", + "dev": true, + "dependencies": { + "uglify-js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.5.tgz", + "integrity": "sha1-S1v/+Rhu/7qoiOTJ6UvZ/EyUkp0=", + "dev": true + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true + } + } + }, + "caniuse-db": { + "version": "1.0.30000749", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000749.tgz", + "integrity": "sha1-VWdzqjqnBPWB10j6Y7RsoIeqxn0=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000749", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000749.tgz", + "integrity": "sha1-L/OChlrq2MyjXaz7qwT1jv+kwBw=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=" + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true + }, + "ci-info": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", + "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true + }, + "class-autobind": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/class-autobind/-/class-autobind-0.1.4.tgz", + "integrity": "sha1-NFFsSRZ8+NP2Od3Bhrz6Imiv/zQ=" + }, + "classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + } + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + } + } + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codemirror": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.31.0.tgz", + "integrity": "sha512-LKbMZKoAz7pMmWuSEl253G6yyloSulj1kXfvYv+3n3I8wMiI7QwnCHwKM3Zw5S9ItNV28Layq0/ihQXWmn9T9w==", + "dev": true + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "dev": true + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compressible": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", + "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", + "dev": true + }, + "compression": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", + "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz", + "integrity": "sha1-PbJPlz9LkjsOgvYZzg3wJBHKYj0=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "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=" + }, + "cosmiconfig": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-1.1.0.tgz", + "integrity": "sha1-DeoPmATv37kp+7GxiOJVU+oFPTc=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "coveralls": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.0.tgz", + "integrity": "sha512-ZppXR9y5PraUOrf/DzHJY6gzNUhXYE3b9D43xEXs4QYZ7/Oe0Gy0CS+IPKWFfvQFXB3RG9QduaQUFehzSpGAFw==", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true + }, + "create-react-class": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz", + "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=" + }, + "cross-env": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.0.tgz", + "integrity": "sha512-R+0paw9UZQc7odHjIxElqyYotgyMlhcUMTfRxiv4I22grgvS5WOSSfCpyfAZUDhP/c9ShSRv+Hzfxs6fY4JA7g==", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", + "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", + "dev": true + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.28.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", + "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=" + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true + } + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssmin": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.3.2.tgz", + "integrity": "sha1-3c5MVHtRCuDVlKjx+/iq+OLFwA0=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true + }, + "curry2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/curry2/-/curry2-1.0.3.tgz", + "integrity": "sha1-OBkdVfEGC/6kfKCACThbuHj2YS8=" + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true + }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "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 + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=" + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", + "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", + "dev": true + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "dev": true + }, + "dom-helpers": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.2.1.tgz", + "integrity": "sha1-MgPgf+0he9H0JLAZc1WC/Deyglo=" + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.0.tgz", + "integrity": "sha512-WpwuBlZ2lQRFa4H/4w49deb9rJLot9KmqrKKjMc9qBl7CID+DdC2swoa34ccRl+anL2B6bLp6TjFdIdnzekMBQ==", + "dev": true + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=" + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=" + }, + "dotsplit.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dotsplit.js/-/dotsplit.js-1.1.0.tgz", + "integrity": "sha1-JaI56r6SKpH/pdKhctbJ+4JFHgI=" + }, + "draft-js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.3.tgz", + "integrity": "sha1-XzwwJa+fSUxi8AqQZgBszcGzyUM=", + "dependencies": { + "immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" + } + } + }, + "draft-js-export-html": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/draft-js-export-html/-/draft-js-export-html-1.2.0.tgz", + "integrity": "sha1-HL4reOH+10/CnHzcv9dUBGjsogk=" + }, + "draft-js-export-markdown": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/draft-js-export-markdown/-/draft-js-export-markdown-1.2.0.tgz", + "integrity": "sha1-xCPWc4nhxw3dE+lWr+gv0bcv7qU=" + }, + "draft-js-import-element": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/draft-js-import-element/-/draft-js-import-element-1.2.1.tgz", + "integrity": "sha512-T/eCDkaU8wrTCH6c+/2BE7Vx/11GABRNU/UBiHM4D903LNFar8UfjElehpiKVf+F4rxi8dfhvTgaWrpWDfX4MA==" + }, + "draft-js-import-html": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/draft-js-import-html/-/draft-js-import-html-1.2.1.tgz", + "integrity": "sha512-FP1y9kdmOVDvOxoI4ny+H0g4CVoTQwdW++Zjf+qMsnz07NsYOCLcQ34j7TiwuPfArFAcOjBOc41Mn+qOa1G14w==" + }, + "draft-js-import-markdown": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/draft-js-import-markdown/-/draft-js-import-markdown-1.2.1.tgz", + "integrity": "sha512-hn2+LJ/QdmuM2gc44uqYWjMqRv5Pt6bZFHULi8hGAR7WVWaVk4gaXHM4fE8H4iVE+QFUV6yNITrm4D/fyPkaGQ==" + }, + "draft-js-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/draft-js-utils/-/draft-js-utils-1.2.0.tgz", + "integrity": "sha1-9csj6xZzJf/tPXmIL9wxdyHS/RI=" + }, + "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 + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "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 + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "enzyme": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-2.9.1.tgz", + "integrity": "sha1-B9XOaRJBJA+4F78sSxjW5TAkDfY=" + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true + }, + "es-abstract": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", + "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==" + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=" + }, + "es5-ext": { + "version": "0.10.35", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", + "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", + "dev": true + }, + "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 + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true + }, + "eslint": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.9.0.tgz", + "integrity": "sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos=", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-20.0.3.tgz", + "integrity": "sha1-7BXrpqwKtEpn6/bgJnLKnX58uik=", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz", + "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==", + "dev": true + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true + }, + "espree": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz", + "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", + "dev": true + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "estraverse-fb": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.2.tgz", + "integrity": "sha1-0yOky15awzHOoDNBOpJT4WQ+B8Q=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true + }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "dev": true + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true + }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "external-editor": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", + "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", + "dev": true + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true + }, + "extract-text-webpack-plugin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.1.tgz", + "integrity": "sha512-zv0/Cg2mU8uMzeQQ3oyfJvZU4Iv/GbQYUIr/HU+8pZetT/0W3xj6XAbxoG4gsp8SbnYcFd4BOsCAZPl9NvplPw==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-bind/-/fast-bind-1.0.0.tgz", + "integrity": "sha1-f6llLLMyX1zR4lLWy08WDeGnbnU=" + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true + }, + "formatio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", + "dev": true + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true + }, + "fs-readdir-recursive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", + "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true + }, + "asn1": { + "version": "0.2.3", + "bundled": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true + }, + "block-stream": { + "version": "0.0.9", + "bundled": true + }, + "boom": { + "version": "2.10.1", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true + }, + "co": { + "version": "4.6.0", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true + }, + "extend": { + "version": "3.0.1", + "bundled": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true + }, + "nopt": { + "version": "4.0.1", + "bundled": true + }, + "npmlog": { + "version": "4.1.0", + "bundled": true + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "qs": { + "version": "6.4.0", + "bundled": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true + }, + "request": { + "version": "2.81.0", + "bundled": true + }, + "rimraf": { + "version": "2.6.1", + "bundled": true + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true + } + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "tar": { + "version": "2.2.1", + "bundled": true + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true + }, + "verror": { + "version": "1.3.6", + "bundled": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", + "integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-own-enumerable-property-symbols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz", + "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true + }, + "gh-pages": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-1.0.0.tgz", + "integrity": "sha1-Skb0wlQ596K35oNVBNSknpSfBMo=", + "dev": true, + "dependencies": { + "async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true + }, + "html": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/html/-/html-1.0.0.tgz", + "integrity": "sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", + "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", + "dev": true + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "dependencies": { + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "postcss": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", + "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "ignore": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.6.tgz", + "integrity": "sha512-HrxmNxKTGZ9a3uAl/FNG66Sdt0G9L4TtMbbUQjP1WhGmSj0FOyHvSgx7623aGJvXfPOur8MwmarlHT+37jmzlw==", + "dev": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + }, + "import-local": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", + "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true + }, + "interpret": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", + "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + }, + "is-ci": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "dev": true + }, + "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=" + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "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 + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=" + }, + "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 + }, + "istanbul-api": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "dev": true + }, + "istanbul-lib-report": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "dev": true, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true + }, + "jest": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz", + "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=", + "dev": true, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "jest-cli": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", + "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", + "dev": true + } + } + }, + "jest-changed-files": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", + "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=", + "dev": true + }, + "jest-config": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz", + "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=", + "dev": true + }, + "jest-diff": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", + "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=", + "dev": true + }, + "jest-docblock": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", + "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=", + "dev": true + }, + "jest-environment-jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", + "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=", + "dev": true, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + }, + "jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", + "dev": true + } + } + }, + "jest-environment-node": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", + "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=", + "dev": true + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "jest-haste-map": { + "version": "20.0.5", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz", + "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==", + "dev": true + }, + "jest-jasmine2": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", + "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=", + "dev": true + }, + "jest-matcher-utils": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", + "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=", + "dev": true + }, + "jest-matchers": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", + "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=", + "dev": true + }, + "jest-message-util": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", + "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=", + "dev": true + }, + "jest-mock": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", + "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=", + "dev": true + }, + "jest-regex-util": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", + "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=", + "dev": true + }, + "jest-resolve": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", + "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=", + "dev": true + }, + "jest-resolve-dependencies": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", + "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=", + "dev": true + }, + "jest-runtime": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", + "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=", + "dev": true, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", + "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=", + "dev": true + }, + "jest-util": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz", + "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=", + "dev": true + }, + "jest-validate": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", + "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=", + "dev": true + }, + "js-base64": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", + "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jschardet": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", + "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", + "dev": true + }, + "jsdom": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.3.0.tgz", + "integrity": "sha512-aPZTDl4MplzQhx5bLztk6nzjbEslmO3Q3+z0WpCMutL1XJDhZIRzir6R1Y8S84LgeT/7jhQvgtUMkY6oPwvlUw==", + "dev": true, + "dependencies": { + "acorn-globals": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.0.0.tgz", + "integrity": "sha512-0ih/qJVrAalX7TjjAnQdz8u+I1QOnLvLq+9zkyqcczObOii07ukuUSd5mTgVDukhqikAs+gqTm6cMd8VFwTrwA==", + "dev": true + }, + "parse5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz", + "integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=", + "dev": true + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true + }, + "whatwg-url": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.3.0.tgz", + "integrity": "sha512-rM+hE5iYKGPAOu05mIdJR47pYSR2vDzfrTEFRc/S8D3L60yW8BuXmUJ7Kog7x/DrokFN7JNaHKadpzjouKRRAw==", + "dev": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jsmin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jsmin/-/jsmin-1.0.1.tgz", + "integrity": "sha1-570NzWSWw79IYyNb9GGj2YqjuYw=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonschema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.0.tgz", + "integrity": "sha512-XDJApzBauMg0TinJNP4iVcJl99PQ4JbWKK7nwzpOIkAOVveDKgh/2xm41T3x7Spu4PWMhnnQpNJmUSIUgl6sKg==", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true + }, + "just-extend": { + "version": "1.1.26", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.26.tgz", + "integrity": "sha512-IIG0FXHB/XpUZ7vGbktoc2EGsF+fLHJ1tU+vaqoKkVRBwH2FDxLTmkGkSp0XHRp6Y3KGZPIldH1YW8lOluGYrA==", + "dev": true + }, + "jxLoader": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jxLoader/-/jxLoader-0.1.1.tgz", + "integrity": "sha1-ATTqUUTlM7WU/B/yX/GU4jXFPs0=", + "dev": true, + "dependencies": { + "js-yaml": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-0.3.7.tgz", + "integrity": "sha1-1znY7oZGHlSzVNan19HyrZoWf2I=", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true + }, + "lint-staged": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-4.3.0.tgz", + "integrity": "sha512-C/Zxslg0VRbsxwmCu977iIs+QyrmW2cyRCPUV5NDFYOH/jtRFHH8ch7ua2fH0voI/nVC3Tpg7DykfgMZySliKw==", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "listr": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", + "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "dev": true, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", + "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "dev": true, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz", + "integrity": "sha1-RNwBuww0oDxXIVTU0Izemx3FYg8=", + "dev": true, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", + "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "log-symbols": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.1.0.tgz", + "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true + } + } + }, + "loglevel": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.5.1.tgz", + "integrity": "sha1-GJB4yUq5BT7iFaCs2/JCROoPZQI=", + "dev": true + }, + "lolex": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.1.3.tgz", + "integrity": "sha512-BdHq78SeI+6PAUtl4atDuCt7L6E4fab3mSRtqxm4ywaXe4uP7jZ0TTcFNuU20syUjxZc2l7jFqKVMJ+AX0LnpQ==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "dev": true, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true + }, + "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 + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true + }, + "moo-server": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/moo-server/-/moo-server-1.3.0.tgz", + "integrity": "sha1-XceVaVZaENbv7VQ5SR5p0jkuWPE=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multicast-dns": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", + "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", + "dev": true + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", + "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=" + }, + "native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "nise": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz", + "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lolex": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true + } + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==" + }, + "node-forge": { + "version": "0.6.33", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", + "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", + "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "dev": true, + "dependencies": { + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "node-notifier": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true + }, + "npm-path": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.3.tgz", + "integrity": "sha1-Fc/04ciaONp39W9gVbJPl137K74=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true + }, + "npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "dev": true + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=" + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-is": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=" + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + }, + "object.assign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", + "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=" + }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=" + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true + }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=" + }, + "obuf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true + }, + "opn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", + "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true + } + } + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "dev": true, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "dev": true + } + } + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "pn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.0.0.tgz", + "integrity": "sha1-HPWjCw2AbNGPiPxBprXUrWFbO6k=", + "dev": true + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "postcss": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", + "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "postcss": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", + "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "postcss": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", + "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "postcss": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", + "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.7.4.tgz", + "integrity": "sha1-XoYkrpNjyA+V7GRFhOzfVddPk/o=", + "dev": true + }, + "pretty-format": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", + "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==" + }, + "promised-io": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/promised-io/-/promised-io-0.3.5.tgz", + "integrity": "sha1-StIXuzZYvKrplGsXqGaOzYUeE1Y=", + "dev": true + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=" + }, + "prop-types-extra": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.0.1.tgz", + "integrity": "sha1-pXvUgQ6C0no/9DF+zBtK0AX3moI=" + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "dev": true + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "dev": true + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true + }, + "react": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", + "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", + "dev": true + }, + "react-addons-test-utils": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-addons-test-utils/-/react-addons-test-utils-15.6.2.tgz", + "integrity": "sha1-wStu/cIkfBDae4dw0YUICnsEcVY=", + "dev": true + }, + "react-bootstrap-table": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-bootstrap-table/-/react-bootstrap-table-4.1.0.tgz", + "integrity": "sha1-1d+TUIPQZXRAQTl2moWlYwjAHmM=" + }, + "react-bootstrap-typeahead": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/react-bootstrap-typeahead/-/react-bootstrap-typeahead-1.4.2.tgz", + "integrity": "sha1-GRPjLOpNeb7NA6yrvZM2EWiEgVs=" + }, + "react-codemirror": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/react-codemirror/-/react-codemirror-1.0.0.tgz", + "integrity": "sha1-kUZ7U7H12A2Rai/QtMetuFqQAbo=", + "dev": true + }, + "react-deep-force-update": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz", + "integrity": "sha1-vNMUeAJ7ZLMznxCJIatSC0MT3Cw=", + "dev": true + }, + "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=", + "dev": true + }, + "react-highlighter": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/react-highlighter/-/react-highlighter-0.4.1.tgz", + "integrity": "sha1-ZedtIw1J0DJYtA/5x3YqCKd8HR0=" + }, + "react-input-autosize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-1.2.0.tgz", + "integrity": "sha1-hyQQcRWfdCEjiXaR2meW7DO1fQU=" + }, + "react-jsonschema-form": { + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/react-jsonschema-form/-/react-jsonschema-form-0.49.0.tgz", + "integrity": "sha512-MTbsAY5s7hNhneVFpSfQjflLal2kuK9YYpdWdr8l54K0B6O4EDIIwpp5visc+1QCs04w2FUo8HqvItaFsQYqig==", + "dev": true + }, + "react-modal": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.0.4.tgz", + "integrity": "sha512-IvRZxJkXiDqEIl4cxCccCzP37z+YOSN+yNOkYH99Ime+n9nPSowgxkX0KfHzR2ezP72LSS3Uln54JDZXUJmLdA==" + }, + "react-onclickoutside": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-5.11.1.tgz", + "integrity": "sha1-ADFOUlZ89V+rqUyrus0RlhkHBiM=" + }, + "react-overlays": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.7.3.tgz", + "integrity": "sha512-mIydIqEo9/3uB9h/Pi/KpAwb0ga93LC2ROH/c33uW3heNVTuGG1pjHvINv7m4V+wzCVosTXWg2AtM/Pxw42u+w==" + }, + "react-prop-types": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", + "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=" + }, + "react-proxy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz", + "integrity": "sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=", + "dev": true + }, + "react-rte": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/react-rte/-/react-rte-0.15.0.tgz", + "integrity": "sha1-8HU9VS2Y9Aj0tVJIudE2Wikycgo=" + }, + "react-s-alert": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-s-alert/-/react-s-alert-1.3.1.tgz", + "integrity": "sha512-iXq7vdTV9RzLxn1wbi1z2gZoezjrALlraDUYnxv2MMrpICDubfKPjMdzSfhZXbZQ/vgHxNUWByeTA7u1ThIjtA==" + }, + "react-test-renderer": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-15.6.2.tgz", + "integrity": "sha1-0DM0NPwsQ4CSaWyncNpe1IA376g=", + "dev": true + }, + "react-transform-catch-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz", + "integrity": "sha1-G01KdulycYlvwW/jCGx5PsiKnus=", + "dev": true + }, + "react-transform-hmr": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz", + "integrity": "sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "dependencies": { + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true + } + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "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 + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" + }, + "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 + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", + "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true + }, + "rxjs": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.0.tgz", + "integrity": "sha512-vmvP5y/oJIJmXKHY36PIjVeI/46Sny6BMBa7/ou2zsNz1PiqU/Gtcz1GujnHz5Qlxncv+J9VlWmttnshqFj3Kg==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "samsam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true + }, + "sane": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz", + "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=", + "dev": true, + "dependencies": { + "bser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", + "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", + "dev": true + }, + "fb-watchman": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", + "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selectn": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/selectn/-/selectn-1.1.2.tgz", + "integrity": "sha1-/IrNkd8/RaywGJHGdzrlKYUdaxc=" + }, + "selfsigned": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", + "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", + "dev": true + }, + "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 + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-3.3.0.tgz", + "integrity": "sha512-/flfGfIxIRXSvZBHJzIf3iAyGYkmMQq6SQjA0cx9SOuVuq+4ZPPO4LJtH1Ce0Lznax1KSG1U6Dad85wIcSW19w==", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true + }, + "sntp": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", + "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", + "dev": true + }, + "sockjs": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", + "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", + "dev": true, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "staged-git-files": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-0.0.4.tgz", + "integrity": "sha1-15fhtVHKemOd7AI33G60u5vhfTU=", + "dev": true + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "dev": true + }, + "stream-to-observable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", + "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + }, + "string-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true + } + } + }, + "stringify-object": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.1.tgz", + "integrity": "sha512-jPcQYw/52HUPP8uOE4kkjxl5bB9LfHkKCTptIk3qw7ozP5XMIMlHMLjt00GGSwW6DJAf/njY5EU6Vpwl4LlBKQ==", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "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 + }, + "style-loader": { + "version": "0.18.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz", + "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true + } + } + }, + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=", + "dev": true + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "synthetic-dom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/synthetic-dom/-/synthetic-dom-1.2.0.tgz", + "integrity": "sha1-81iar+K14pnzN7sylzqb5C3VYl4=" + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true + }, + "chalk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + } + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", + "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "thunky": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", + "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", + "dev": true + }, + "time-stamp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", + "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "dev": true + }, + "timespan": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true + }, + "type-detect": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", + "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", + "dev": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", + "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", + "dev": true, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=" + }, + "watch": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", + "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=", + "dev": true + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "dev": true + }, + "wbuf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", + "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", + "dev": true, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + } + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz", + "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=", + "dev": true + }, + "webpack-dev-server": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.3.tgz", + "integrity": "sha512-bwq7sj452FRH+oVfgOA8xXKkLYPTNsYB4dQ0Jhz3ydjNJ9MvhpGJtehFW8Z0cEcwNkRRiF4aYbReiSGQ4pbS1w==", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true + } + } + }, + "webpack-hot-middleware": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.20.0.tgz", + "integrity": "sha512-AYwVG9DCvMoXbwx8eK16CbJY3Ltwap44lW3T7hFsE0U3zRwtViHMw1DFpY5hMwXNqKsUk3HtNcf3PoV+gIxJeg==", + "dev": true + }, + "webpack-sources": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", + "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true + }, + "websocket-extensions": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz", + "integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.2.tgz", + "integrity": "sha512-9WQ+6BvuD7A1vaGMqMjyR5zhHnR/VXKrs2WHobV/YCfeKXKEk0SJbgwg4kjdpRRrenEQbYwZ/P9vQAVUEVAzUg==", + "dev": true, + "dependencies": { + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "dev": true, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + } + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "winston": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", + "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", + "dev": true, + "dependencies": { + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "worker-farm": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz", + "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "wrench": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/wrench/-/wrench-1.3.9.tgz", + "integrity": "sha1-bxPsNRRTF+spLKX2UxORskQRFBE=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json index 4f1f06f..dc24a6c 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.23", + "version": "0.8.24", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 332a1e6e494f159de70039a6b6f9251c99dc965f Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 14 Nov 2017 15:35:00 +0300 Subject: [PATCH 104/297] #52 --- src/CollapsibleField.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 5c75c4c..4fc684a 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -50,6 +50,7 @@ class CollapsibleField extends Component { if (formData.some(v => deepEquals(v, newVal))) { return formData; } else { + // newVal can be either array or a single element, concat flattens value return formData.concat(newVal); } }; @@ -58,7 +59,7 @@ class CollapsibleField extends Component { if (field === "self") { this.props.onChange(this.appendToArray(formData, newVal)); } else { - let fieldVal = this.appendToArray(formData[field]); + let fieldVal = this.appendToArray(formData[field], newVal); let change = Object.assign({}, formData, { [field]: fieldVal }); this.props.onChange(change); } From beee21e8b485f35b91af855a620ad0156eb512ed Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 14 Nov 2017 15:36:04 +0300 Subject: [PATCH 105/297] 0.8.25 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ce53d8..8253e09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.24", + "version": "0.8.25", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index dc24a6c..48d91df 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.24", + "version": "0.8.25", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 747428d9786c8a0103d6c471d8e8bd16c950e435 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 14 Nov 2017 16:42:30 +0300 Subject: [PATCH 106/297] Specify default for collapsible field --- src/CollapsibleField.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 4fc684a..e5cc15e 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -46,7 +46,7 @@ class CollapsibleField extends Component { this.state = { collapsed }; } - appendToArray = (formData, newVal) => { + appendToArray = (formData = [], newVal) => { if (formData.some(v => deepEquals(v, newVal))) { return formData; } else { From 2f99c82e57111d628cc7b108a4f91da8f22d3504 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 17 Nov 2017 14:57:19 +0300 Subject: [PATCH 107/297] fix #53 --- README.md | 40 +++++++++++++++++--------- playground/app/medications/uiSchema.js | 10 ++----- src/TypeaheadField.js | 10 ++++++- src/table/index.js | 18 +++++++++++- 4 files changed, 54 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 8b784a8..18277c9 100644 --- a/README.md +++ b/README.md @@ -218,13 +218,16 @@ The simplest configuration would be ### Properties All properties that you specify under `typeahead` will be used in the original project. - Additionally, there are few project specific properties - - `labelKey` have more flexibility in configuration - - `labelKey` `string` used a labelKey in [typeahead](https://github.com/ericgio/react-bootstrap-typeahead) project - - `labelKey` `array` in this case array is a list of fields in original object, which are combined in a single string with a space separator - - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields - - `cleanAfterSelection` `boolean` clean selection after component was selected (default false) - - `mapping` `object` that maps selected object to schema object + - `focusOnMount` focusOn typeahead, after it was mounted to page + - `typeahead` all properties that you specify under `typeahead` will be used in the original project. + Additionally, there are few project specific properties + - `labelKey` have more flexibility in configuration + - `labelKey` `string` used a labelKey in [typeahead](https://github.com/ericgio/react-bootstrap-typeahead) project + - `labelKey` `array` in this case array is a list of fields in original object, which are combined in a single string with a space separator + - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields + - `cleanAfterSelection` `boolean` clean selection after component was selected (default false) + - `mapping` `object` that maps selected object to schema object + For complete list of configurations refer to [react-bootstrap-typeahead](https://github.com/ericgio/react-bootstrap-typeahead) @@ -333,12 +336,20 @@ The simplest configuration would be ### Properties -Async typeahead extends default configuration list for `typeahead`, by adding few properties -- `url` search url, that will be used during autocomplete -- `search` function that will be querying server for data, which takes 2 parameters, and must return a Promise with a json result - - `url` configured URL - - `query` typed query string -- `optionsPath` path to options array in response +Async typeahead extends default configuration list for `typeahead`, by adding few properties under `asyncTypeahead` + - `focusOnMount` focusOn typeahead, after it was mounted to page + - `asyncTypeahead` all properties that you specify under `typeahead` will be used in the original project. + - `url` search url, that will be used during autocomplete + - `search` function that will be querying server for data, which takes 2 parameters, and must return a Promise with a json result + - `url` configured URL + - `query` typed query string + - `optionsPath` path to options array in response + - `labelKey` have more flexibility in configuration + - `labelKey` `string` used a labelKey in [typeahead](https://github.com/ericgio/react-bootstrap-typeahead) project + - `labelKey` `array` in this case array is a list of fields in original object, which are combined in a single string with a space separator + - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields + - `cleanAfterSelection` `boolean` clean selection after component was selected (default false) + - `mapping` `object` that maps selected object to schema object For example, let's consider query with `Was` on `url` `https://example.com/state`. @@ -407,8 +418,9 @@ This component wraps [react-bootstrap-table](https://github.com/AllenFang/react- ### Properties -You can use `table` field without any predefined configurations, it will generate default table schema with columns. +You can use `table` field without any predefined configurations, it will generate default table schema with columns. - `tableCols` an array of react-bootstrap-table configurations, that override default generated configurations for the field. +- `focusOnAdd` boolean flag, that enables fresh row select, when adding new row to the table, it will focus on a first column by default. By default table component will generate table columns, based on an array schema, with editables, based on field types. diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 06378d6..92137b5 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -1,5 +1,3 @@ -import React from "react"; - export default { medications: { classNames: "col-md-12", @@ -8,17 +6,12 @@ export default { field: "table", collapsed: false, addTo: "self", - addElement: (schema, uiSchema, onSubmit) => () => ( - - ), }, "ui:options": { label: false, }, table: { + focusOnAdd: true, tableCols: [ { dataField: "drugId", @@ -28,6 +21,7 @@ export default { dataField: "drugName", field: "typeahead", uiSchema: { + focusOnMount: true, typeahead: { options: [ { diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 5c8683f..33e76a2 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -150,6 +150,13 @@ class BaseTypeaheadField extends Component { } } }; + + componentDidMount() { + let { uiSchema: { focusOnMount = false } } = this.props; + if (focusOnMount) { + this.refs.typeahead.getInstance().focus(); + } + } } export class TypeaheadField extends BaseTypeaheadField { @@ -172,6 +179,7 @@ export class TypeaheadField extends BaseTypeaheadField { TypeaheadField.propTypes = { schema: PropTypes.object.isRequired, uiSchema: PropTypes.shape({ + focusOnMount: PropTypes.bool, typeahead: PropTypes.shape({ options: PropTypes.array.isRequired, mapping: PropTypes.oneOfType([ @@ -231,7 +239,6 @@ export class AsyncTypeaheadField extends BaseTypeaheadField { onChange: this.handleSelectionChange(asyncTypeahead), onSearch: this.handleSearch, options: this.state.options, - ref: "typeahead", }); return ; @@ -241,6 +248,7 @@ export class AsyncTypeaheadField extends BaseTypeaheadField { AsyncTypeaheadField.propTypes = { schema: PropTypes.object.isRequired, uiSchema: PropTypes.shape({ + focusOnMount: PropTypes.bool, asyncTypeahead: PropTypes.shape({ url: PropTypes.string.isRequired, optionsPath: PropTypes.string, diff --git a/src/table/index.js b/src/table/index.js index 53f915f..500b810 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -50,6 +50,22 @@ class TableField extends Component { this.props.onChange(removePosition(filteredRows)); } + componentWillReceiveProps(nextProps) { + let { uiSchema: { table: { focusOnAdd } } } = nextProps; + this.adding = + focusOnAdd && + nextProps.formData && + this.props.formData && + nextProps.formData.length > this.props.formData.length; + } + + componentDidUpdate() { + if (this.adding) { + let { table: { refs: { body } } } = this.refs; + body.handleEditCell(this.props.formData.length, 1); + } + } + render() { let { uiSchema, @@ -76,7 +92,7 @@ class TableField extends Component { ); return ( - + {columns.map((column, i) => { return ( From f84824a7f376b1e9831eb1177ecee747aa7f3308 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 17 Nov 2017 14:59:12 +0300 Subject: [PATCH 108/297] 0.8.26 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8253e09..d647213 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.25", + "version": "0.8.26", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index 48d91df..540ddb9 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.25", + "version": "0.8.26", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 6be2118845ac9b7b02d5360fdc49564d61bed3da Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 17 Nov 2017 15:27:24 +0300 Subject: [PATCH 109/297] Changing focus on add for the table to the column number --- README.md | 2 +- playground/app/medications/uiSchema.js | 2 +- src/table/index.js | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 18277c9..add2a32 100644 --- a/README.md +++ b/README.md @@ -420,7 +420,7 @@ This component wraps [react-bootstrap-table](https://github.com/AllenFang/react- You can use `table` field without any predefined configurations, it will generate default table schema with columns. - `tableCols` an array of react-bootstrap-table configurations, that override default generated configurations for the field. -- `focusOnAdd` boolean flag, that enables fresh row select, when adding new row to the table, it will focus on a first column by default. +- `focusOnAdd` column number, when set, adding new row to the table, it will focus on a specified column. By default table component will generate table columns, based on an array schema, with editables, based on field types. diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 92137b5..1556deb 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -11,7 +11,7 @@ export default { label: false, }, table: { - focusOnAdd: true, + focusOnAdd: 7, tableCols: [ { dataField: "drugId", diff --git a/src/table/index.js b/src/table/index.js index 500b810..918fb9d 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -53,7 +53,7 @@ class TableField extends Component { componentWillReceiveProps(nextProps) { let { uiSchema: { table: { focusOnAdd } } } = nextProps; this.adding = - focusOnAdd && + focusOnAdd !== undefined && nextProps.formData && this.props.formData && nextProps.formData.length > this.props.formData.length; @@ -61,8 +61,9 @@ class TableField extends Component { componentDidUpdate() { if (this.adding) { + let { uiSchema: { table: { focusOnAdd } } } = this.props; let { table: { refs: { body } } } = this.refs; - body.handleEditCell(this.props.formData.length, 1); + body.handleEditCell(this.props.formData.length, focusOnAdd); } } From cef91a086084d7961a0b4aa3d6b98a5833dc4f7c Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 17 Nov 2017 15:28:30 +0300 Subject: [PATCH 110/297] 0.8.27 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d647213..a8d1274 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.26", + "version": "0.8.27", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index 540ddb9..6c2f9b9 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.26", + "version": "0.8.27", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 79837f3472347ca3461c231718715daed30d9ce1 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 17 Nov 2017 16:00:05 +0300 Subject: [PATCH 111/297] fix #54 --- playground/app/medications/uiSchema.js | 4 +- src/CollapsibleField.js | 73 +++++++++++++------------- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 1556deb..e333e76 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -4,14 +4,14 @@ export default { "ui:field": "collapsible", collapse: { field: "table", - collapsed: false, + collapsed: true, addTo: "self", }, "ui:options": { label: false, }, table: { - focusOnAdd: 7, + focusOnAdd: 1, tableCols: [ { dataField: "drugId", diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index e5cc15e..48d1be3 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -66,44 +66,45 @@ class CollapsibleField extends Component { }; handleAdd = () => { - let { schema, uiSchema, formData, registry: { fields } } = this.props; - let { collapse: { addTo, addElement } } = uiSchema; - - let fieldSchema = - addTo === "self" ? schema.items : schema.properties[addTo].items; - let fieldUiSchema = addTo === "self" ? uiSchema : uiSchema[addTo]; - - if (addElement) { - if (typeof addElement === "function") { - let onSubmit = newVal => { - this.setState({ AddElement: undefined }); - this.doAdd(addTo, formData, newVal); - }; - let AddElement = addElement(fieldSchema, fieldUiSchema, onSubmit); - this.setState({ AddElement }); + this.setState({ collapsed: false }); + this.forceUpdate(() => { + let { schema, uiSchema, formData, registry: { fields } } = this.props; + let { collapse: { addTo, addElement } } = uiSchema; + + let fieldSchema = + addTo === "self" ? schema.items : schema.properties[addTo].items; + let fieldUiSchema = addTo === "self" ? uiSchema : uiSchema[addTo]; + + if (addElement) { + if (typeof addElement === "function") { + let onSubmit = newVal => { + this.setState({ AddElement: undefined }); + this.doAdd(addTo, formData, newVal); + }; + let AddElement = addElement(fieldSchema, fieldUiSchema, onSubmit); + this.setState({ AddElement }); + } else { + let FieldElement = fields[addElement]; + let onBlur = newVal => { + this.setState({ AddElement: undefined }); + this.doAdd(addTo, formData, newVal); + }; + let AddElement = () => ( + { + onBlur(formData); + }} + /> + ); + this.setState({ AddElement }); + } } else { - let FieldElement = fields[addElement]; - let onBlur = newVal => { - this.setState({ AddElement: undefined }); - this.doAdd(addTo, formData, newVal); - }; - let AddElement = () => ( - { - onBlur(formData); - }} - /> - ); - this.setState({ AddElement }); + let newVal = getDefaultFormState(fieldSchema, {}); + this.doAdd(addTo, formData, newVal); } - } else { - let newVal = getDefaultFormState(fieldSchema, {}); - this.doAdd(addTo, formData, newVal); - } - - this.setState({ collapsed: false }); + }); }; handleCollapsed = () => { From 57396ed1de2574e1e87e652e930c0480b134dded Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 17 Nov 2017 16:01:18 +0300 Subject: [PATCH 112/297] 0.8.28 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8d1274..124fc36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.27", + "version": "0.8.28", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index 6c2f9b9..b7f7d8a 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.27", + "version": "0.8.28", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 4a02770d4a71e057885b3e7b5594e8fbf9779858 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 23 Nov 2017 18:01:42 +0100 Subject: [PATCH 113/297] #55 --- playground/app/medications/uiSchema.js | 8 +++++- src/CollapsibleField.js | 34 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index e333e76..6fbfe69 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -4,7 +4,13 @@ export default { "ui:field": "collapsible", collapse: { field: "table", - collapsed: true, + collapsed: false, + legend: { + component: "BPLegend", + props: { + me: "Me", + }, + }, addTo: "self", }, "ui:options": { diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 48d1be3..22b40f6 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -37,6 +37,32 @@ function CollapseMenu(props) { ); } +class CollapseLegend extends Component { + render() { + let { + uiSchema: { collapse: { legend } }, + formContext: { legends = {} } = {}, + } = this.props; + if (!legend) { + return null; + } + if (typeof legend === "string") { + return
{legend}
; + } else if (typeof legend === "object") { + const Component = legends[legend.component]; + if (!Component) { + return ( +

+ Can't find {legend.component} in formContext.legends +

+ ); + } + return ; + } + return
I'm a legend
; + } +} + class CollapsibleField extends Component { constructor(props) { super(props); @@ -137,6 +163,7 @@ class CollapsibleField extends Component { />
{AddElement && } + {!collapsed && } {!collapsed && }
@@ -156,6 +183,13 @@ CollapsibleField.propTypes = { separate: PropTypes.boolean, addTo: PropTypes.string, addElement: PropTypes.oneOfType([PropTypes.string, PropTypes.string]), + legend: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.shape({ + component: PropTypes.string.isRequired, + props: PropTypes.object, + }), + ]), wrapClassName: PropTypes.string, }).isRequired, }).isRequired, From c76cfb42a5992fecbd008b2f812c56d22911ecfd Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 24 Nov 2017 13:55:42 +0100 Subject: [PATCH 114/297] fix #55 --- README.md | 53 ++++++++++++++++++++++++++ playground/app/App.js | 35 +++++++++++++++-- playground/app/medications/uiSchema.js | 4 +- src/CollapsibleField.js | 3 +- 4 files changed, 88 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index add2a32..2b105c3 100644 --- a/README.md +++ b/README.md @@ -159,12 +159,65 @@ You can customize presentation of collapsible field, with "collapse" object in u - `addElement` (experimental) representation element for add function (for example if you want to show modal on add icon press, here where this would be) - `function(schema, uiSchema, onChange)` that returns React Component to render for add function - `string` `field` definition from `react-jsonschema-form` catalogue +- `legend` (experimental) allows to add additional information under collapsed field + - `string` text to be rendered under collapsible field + - `object` that allows to render any kind of `legend` you need, which will be sourced from `formContext` `legends` configuration + - `component` `string` name of the component, that will be sourced from `formContext.legends` object + - `props` `object` additional properties for rendered component + Additional feature of the Collapsible field is to allow adding empty value to hidden `array`, it's enabled with `addTo` feature, which can be either `self` which assumes that Collapsible field is the target array, or it can be a property field. Field `schema` `title` used as a header of the collapsible action. +### Examples + +#### Using specific legend in collapsible field. + +Task: + +We have a `firstName` field, which is collapsible and we need to display a `LanguageLegend`, which would notify user of the language to use. + +Solution: + +The simplest configuration with `schema`, `uiSchema` and `formContext` would look something like this + +```jsx harmony + import React from "react"; + import fields from "react-jsonschema-form-extras" + + let schema = { + type: "object", + properties: { + firstName: { type: "string" } + } + } + + let uiSchema = { + firstName: { + "ui:field": "collapsible", + collapse: { + field: "StringField", + legend: { + component: "LanguageLegend", + props: { + language: "EN" + } + } + } + } + } + + let formContext = { + legends: { + LanguageLegend: (props) => (

Expected {props.language} characters

) + } + } + + +``` + ## Alternative input fields (`altInput`) ### Purpose diff --git a/playground/app/App.js b/playground/app/App.js index d211dde..d20c89a 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -10,17 +10,44 @@ import dx from "./dx"; export default function App() { let handleChange = ({ formData }) => console.log(JSON.stringify(formData)); + let formContext = { + legends: { + LanguageLegend: props =>

Expected {props.language} characters

, + }, + }; + return (
+ + + + - - - -
); } diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 6fbfe69..4945aa2 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -6,9 +6,9 @@ export default { field: "table", collapsed: false, legend: { - component: "BPLegend", + component: "LanguageLegend", props: { - me: "Me", + language: "English", }, }, addTo: "self", diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 22b40f6..adce7cb 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -51,8 +51,9 @@ class CollapseLegend extends Component { } else if (typeof legend === "object") { const Component = legends[legend.component]; if (!Component) { + console.error(`Can't find ${legend.components} in formContext.legends`); return ( -

+

Can't find {legend.component} in formContext.legends

); From 65c58110628e7c3f8578013511d807179ca9c99d Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Fri, 24 Nov 2017 13:57:01 +0100 Subject: [PATCH 115/297] 0.8.29 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 124fc36..014caa5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.28", + "version": "0.8.29", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index b7f7d8a..fe5fef6 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.28", + "version": "0.8.29", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 0a8eafdd1aa9af12071e1649415c2cb42aedd8be Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Mon, 27 Nov 2017 12:18:46 +0100 Subject: [PATCH 116/297] #56 --- playground/app/App.js | 5 + playground/app/medications/index.js | 2 +- playground/app/medications/schema.js | 263 +++++++------- playground/app/medications/uiSchema.js | 462 +++++++++++++------------ src/CollapsibleField.js | 50 ++- 5 files changed, 425 insertions(+), 357 deletions(-) diff --git a/playground/app/App.js b/playground/app/App.js index d20c89a..e85f945 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -14,6 +14,11 @@ export default function App() { legends: { LanguageLegend: props =>

Expected {props.language} characters

, }, + allActions: { + Button: props => ( + Update allergies + ), + }, }; return ( diff --git a/playground/app/medications/index.js b/playground/app/medications/index.js index a06fef8..625ce56 100644 --- a/playground/app/medications/index.js +++ b/playground/app/medications/index.js @@ -4,5 +4,5 @@ import uiSchema from "./uiSchema"; export default { schema, uiSchema, - formData: { medications: [{ useGeneric: false }] }, + formData: { medicationData: { medications: [{ useGeneric: false }] } }, }; diff --git a/playground/app/medications/schema.js b/playground/app/medications/schema.js index 65f3f47..9eeef28 100644 --- a/playground/app/medications/schema.js +++ b/playground/app/medications/schema.js @@ -2,135 +2,140 @@ export default { required: [], type: "object", properties: { - medications_no_active: { - type: "boolean", - title: "NO ACTIVE MEDICATIONS", - }, - medications: { - type: "array", - title: "Medications", - items: { - required: [], - type: "object", - properties: { - drugId: { - type: "string", - }, - drugName: { - type: "string", - title: "Drug Name", - }, - dosage: { - type: "number", - title: "Dosage", - }, - quantity: { - type: "number", - title: "Quantity", - }, - unit: { - type: "string", - title: "Units", - enum: [ - "Ampule", - "Applicator", - "Applicatorful", - "Bag", - "Bar", - "Bead", - "Blister", - "Block", - "Bolus", - "Bottle", - "Box", - "Can", - "Canister", - "Caplet", - "Capsule", - "Carton", - "Cartridge", - "Case", - "Cassette", - "Container", - "Cylinder", - "Disk", - "Dose Pack", - "Dual Pack", - "Film", - "Fluid Ounce", - "Gallon", - "Gram", - "Gum", - "Implant", - "Inhalation", - "Inhaler Refill", - "Inhaler", - "Insert", - "Intravenous Bag", - "Kilogram", - "Kit", - "Liter", - "Lozenge", - "Metric Drop", - "Milligram", - "Milliliter", - "Millimeter", - "Nebule", - "Ocular System", - "Ounce", - "Package", - "Pad", - "Paper", - "Patch", - "Pint", - "Pouch", - "Pound", - "Puff", - "Quart", - "Ring", - "Sachet", - "Scoopful", - "Sponge", - "Spray", - "Stick", - "Strip", - "Suppository", - "Swab", - "Syringe", - "Tablespoon", - "Tablet", - "Tabminder", - "Tampon", - "Teaspoon", - "Tray", - "Troche", - "Tube", - "Vial", - "Wafer", - "Each", - "French", - "Lancet", - "Milliequivalent", - "Needle Free Injection", - "Pen Needle", - "Pre-filled Pen Syringe", - "Pump", - "Unspecified", - ], - }, - refills: { - type: "string", - title: "Refills", - }, - useGeneric: { - default: true, - type: "boolean", - title: "Use Generic", - }, - startDate: { - type: "string", - format: "date", - title: "Start Date", + medicationData: { + type: "object", + properties: { + medications_no_active: { + type: "boolean", + title: "NO ACTIVE MEDICATIONS", + }, + medications: { + type: "array", + title: "Medications", + items: { + required: [], + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + dosage: { + type: "number", + title: "Dosage", + }, + quantity: { + type: "number", + title: "Quantity", + }, + unit: { + type: "string", + title: "Units", + enum: [ + "Ampule", + "Applicator", + "Applicatorful", + "Bag", + "Bar", + "Bead", + "Blister", + "Block", + "Bolus", + "Bottle", + "Box", + "Can", + "Canister", + "Caplet", + "Capsule", + "Carton", + "Cartridge", + "Case", + "Cassette", + "Container", + "Cylinder", + "Disk", + "Dose Pack", + "Dual Pack", + "Film", + "Fluid Ounce", + "Gallon", + "Gram", + "Gum", + "Implant", + "Inhalation", + "Inhaler Refill", + "Inhaler", + "Insert", + "Intravenous Bag", + "Kilogram", + "Kit", + "Liter", + "Lozenge", + "Metric Drop", + "Milligram", + "Milliliter", + "Millimeter", + "Nebule", + "Ocular System", + "Ounce", + "Package", + "Pad", + "Paper", + "Patch", + "Pint", + "Pouch", + "Pound", + "Puff", + "Quart", + "Ring", + "Sachet", + "Scoopful", + "Sponge", + "Spray", + "Stick", + "Strip", + "Suppository", + "Swab", + "Syringe", + "Tablespoon", + "Tablet", + "Tabminder", + "Tampon", + "Teaspoon", + "Tray", + "Troche", + "Tube", + "Vial", + "Wafer", + "Each", + "French", + "Lancet", + "Milliequivalent", + "Needle Free Injection", + "Pen Needle", + "Pre-filled Pen Syringe", + "Pump", + "Unspecified", + ], + }, + refills: { + type: "string", + title: "Refills", + }, + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + startDate: { + type: "string", + format: "date", + title: "Start Date", + }, + }, }, }, }, diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 4945aa2..4d0f41e 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -1,240 +1,252 @@ export default { - medications: { - classNames: "col-md-12", + medicationData: { "ui:field": "collapsible", + "ui:options": { + label: false, + }, + label: false, collapse: { - field: "table", + field: "ObjectField", collapsed: false, legend: { component: "LanguageLegend", - props: { - language: "English", - }, }, - addTo: "self", - }, - "ui:options": { - label: false, - }, - table: { - focusOnAdd: 1, - tableCols: [ + actions: [ { - dataField: "drugId", - hidden: true, + component: "Button", }, - { - dataField: "drugName", - field: "typeahead", - uiSchema: { - focusOnMount: true, - typeahead: { - options: [ - { - DrugId: 471154, - DrugName: - "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", - }, - { - DrugId: 471211, - DrugName: "AmLactin Distribution Pack 12 %-12 % topical kit", - }, - { - DrugId: 237930, - DrugName: "ceftibuten 180 mg/5 mL oral suspension", - }, - { - DrugId: 195800, - DrugName: "ceftibuten 400 mg capsule", - }, - { - DrugId: 445980, - DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension", - }, - { - DrugId: 273242, - DrugName: - "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension", - }, - { - DrugId: 436727, - DrugName: "Children's Ibuprofen 100 mg/5 mL oral suspension", - }, - { - DrugId: 557123, - DrugName: "Comfort Pac-Ibuprofen 800 mg kit", - }, - { - DrugId: 219132, - DrugName: "dibucaine 1 % topical ointment", - }, - { - DrugId: 292795, - DrugName: "dibucaine HCl (bulk) 100 % powder", - }, - { - DrugId: 554201, - DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet", - }, - { - DrugId: 469644, - DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet", - }, - { - DrugId: 156812, - DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet", - }, - { - DrugId: 290029, - DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension", - }, - { DrugId: 554209, DrugName: "Ibudone 10 mg-200 mg tablet" }, - { - DrugId: 554208, - DrugName: "Ibudone 5 mg-200 mg tablet", - }, - { DrugId: 227645, DrugName: "ibuprofen (bulk) 100 % powder" }, - { - DrugId: 298404, - DrugName: "ibuprofen 100 mg chewable tablet", - }, - { DrugId: 234997, DrugName: "ibuprofen 100 mg tablet" }, - { - DrugId: 278995, - DrugName: "ibuprofen 100 mg/5 mL oral suspension", - }, - { DrugId: 182478, DrugName: "ibuprofen 200 mg capsule" }, - { - DrugId: 256217, - DrugName: "ibuprofen 200 mg tablet", - }, - { DrugId: 250621, DrugName: "ibuprofen 400 mg tablet" }, - { - DrugId: 237650, - DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension", - }, - { DrugId: 275877, DrugName: "ibuprofen 600 mg tablet" }, - { - DrugId: 173420, - DrugName: "ibuprofen 800 mg tablet", - }, - { - DrugId: 449425, - DrugName: - "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet", - }, - { - DrugId: 472085, - DrugName: "Ibuprofen IB 100 mg chewable tablet", - }, - { - DrugId: 281309, - DrugName: "Ibuprofen IB 200 mg tablet", - }, - { - DrugId: 471498, - DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet", - }, - { - DrugId: 545552, - DrugName: - "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution", - }, - { - DrugId: 581894, - DrugName: "Ibuprofen PM 200 mg-25 mg capsule", - }, - { - DrugId: 557264, - DrugName: "Ibuprofen PM 200 mg-38 mg tablet", - }, - { - DrugId: 550378, - DrugName: - "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet", - }, - { - DrugId: 472620, - DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet", - }, - { - DrugId: 281153, - DrugName: "ibutilide fumarate 0.1 mg/mL intravenous solution", - }, - { - DrugId: 449511, - DrugName: - "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension", - }, - { - DrugId: 472123, - DrugName: - "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension", - }, - { - DrugId: 454370, - DrugName: "squaric acid dibutylest.(bulk) 100 % liquid", - }, - { - DrugId: 185726, - DrugName: "squaric acid dibutylester powder", - }, - ], - mapping: { - drugName: "DrugName", - drugId: "DrugId", + ], + addTo: "medications", + }, + medications: { + "ui:field": "table", + "ui:options": { + label: false, + }, + classNames: "col-md-12", + table: { + focusOnAdd: 1, + tableCols: [ + { + dataField: "drugId", + hidden: true, + }, + { + dataField: "drugName", + field: "typeahead", + uiSchema: { + focusOnMount: true, + typeahead: { + options: [ + { + DrugId: 471154, + DrugName: + "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", + }, + { + DrugId: 471211, + DrugName: + "AmLactin Distribution Pack 12 %-12 % topical kit", + }, + { + DrugId: 237930, + DrugName: "ceftibuten 180 mg/5 mL oral suspension", + }, + { + DrugId: 195800, + DrugName: "ceftibuten 400 mg capsule", + }, + { + DrugId: 445980, + DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension", + }, + { + DrugId: 273242, + DrugName: + "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + }, + { + DrugId: 436727, + DrugName: + "Children's Ibuprofen 100 mg/5 mL oral suspension", + }, + { + DrugId: 557123, + DrugName: "Comfort Pac-Ibuprofen 800 mg kit", + }, + { + DrugId: 219132, + DrugName: "dibucaine 1 % topical ointment", + }, + { + DrugId: 292795, + DrugName: "dibucaine HCl (bulk) 100 % powder", + }, + { + DrugId: 554201, + DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet", + }, + { + DrugId: 469644, + DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet", + }, + { + DrugId: 156812, + DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet", + }, + { + DrugId: 290029, + DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + }, + { DrugId: 554209, DrugName: "Ibudone 10 mg-200 mg tablet" }, + { + DrugId: 554208, + DrugName: "Ibudone 5 mg-200 mg tablet", + }, + { DrugId: 227645, DrugName: "ibuprofen (bulk) 100 % powder" }, + { + DrugId: 298404, + DrugName: "ibuprofen 100 mg chewable tablet", + }, + { DrugId: 234997, DrugName: "ibuprofen 100 mg tablet" }, + { + DrugId: 278995, + DrugName: "ibuprofen 100 mg/5 mL oral suspension", + }, + { DrugId: 182478, DrugName: "ibuprofen 200 mg capsule" }, + { + DrugId: 256217, + DrugName: "ibuprofen 200 mg tablet", + }, + { DrugId: 250621, DrugName: "ibuprofen 400 mg tablet" }, + { + DrugId: 237650, + DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension", + }, + { DrugId: 275877, DrugName: "ibuprofen 600 mg tablet" }, + { + DrugId: 173420, + DrugName: "ibuprofen 800 mg tablet", + }, + { + DrugId: 449425, + DrugName: + "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet", + }, + { + DrugId: 472085, + DrugName: "Ibuprofen IB 100 mg chewable tablet", + }, + { + DrugId: 281309, + DrugName: "Ibuprofen IB 200 mg tablet", + }, + { + DrugId: 471498, + DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet", + }, + { + DrugId: 545552, + DrugName: + "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution", + }, + { + DrugId: 581894, + DrugName: "Ibuprofen PM 200 mg-25 mg capsule", + }, + { + DrugId: 557264, + DrugName: "Ibuprofen PM 200 mg-38 mg tablet", + }, + { + DrugId: 550378, + DrugName: + "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet", + }, + { + DrugId: 472620, + DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet", + }, + { + DrugId: 281153, + DrugName: + "ibutilide fumarate 0.1 mg/mL intravenous solution", + }, + { + DrugId: 449511, + DrugName: + "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension", + }, + { + DrugId: 472123, + DrugName: + "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + }, + { + DrugId: 454370, + DrugName: "squaric acid dibutylest.(bulk) 100 % liquid", + }, + { + DrugId: 185726, + DrugName: "squaric acid dibutylester powder", + }, + ], + mapping: { + drugName: "DrugName", + drugId: "DrugId", + }, + minLength: 2, + labelKey: "DrugName", + bodyContainer: true, + cleanAfterSelection: true, }, - minLength: 2, - labelKey: "DrugName", - bodyContainer: true, - cleanAfterSelection: true, }, }, - }, - { - dataField: "dosage", - className: "col-md-1", - columnClassName: "col-md-1", - editColumnClassName: "col-md-1", - }, - { - dataField: "quantity", - className: "col-md-1", - columnClassName: "col-md-1", - editColumnClassName: "col-md-1", - }, - { - dataField: "unit", - className: "col-md-1", - columnClassName: "col-md-1", - editColumnClassName: "col-md-1", - }, - { - dataField: "refills", - className: "col-md-1", - columnClassName: "col-md-1", - editColumnClassName: "col-md-1", - }, - { - dataField: "useGeneric", - className: "col-md-1", - columnClassName: "col-md-1", - editColumnClassName: "col-md-1", - }, - ], - rightActions: [ - { - action: "delete", - className: "col-md-1", - columnClassName: "col-md-1", - editColumnClassName: "col-md-1", - icon: "glyphicon glyphicon-minus", - }, - ], + { + dataField: "dosage", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "quantity", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "unit", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "refills", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "useGeneric", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + ], + rightActions: [ + { + action: "delete", + className: "col-md-1", + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + icon: "glyphicon glyphicon-minus", + }, + ], + }, + }, + medications_no_active: { + classNames: "col-md-6", + nav: ["medications"], }, - }, - medications_no_active: { - classNames: "col-md-6", - nav: ["medications"], }, }; diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index adce7cb..59dbd39 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -1,12 +1,36 @@ import React, { Component } from "react"; import { - getDefaultFormState, deepEquals, + getDefaultFormState, } from "react-jsonschema-form/lib/utils"; import PropTypes from "prop-types"; +class CollapseMenuAction extends Component { + render() { + let { action, allActions = {} } = this.props; + if (!action) { + return null; + } + if (typeof action === "string") { + return
{action}
; + } else if (typeof action === "object") { + const Component = allActions[action.component]; + if (!Component) { + console.error( + `Can't find ${action.component} in formContext.allActions` + ); + return ( +

+ Can't find {action.component} in formContext.allActions +

+ ); + } + return ; + } + } +} + function CollapseMenu(props) { - let { onChange, onAdd, title, name, collapsed } = props; let { uiSchema: { collapse: { @@ -18,8 +42,15 @@ function CollapseMenu(props) { separate = true, addTo, wrapClassName = "lead", + actions = [], }, }, + formContext = {}, + onChange, + onAdd, + title, + name, + collapsed, } = props; return (
@@ -32,6 +63,13 @@ function CollapseMenu(props) { + {actions.map((action, i) => ( + + ))} {separate &&
}
); @@ -146,6 +184,7 @@ class CollapsibleField extends Component { uiSchema, registry: { fields }, name, + formContext, } = this.props; let { collapsed, AddElement } = this.state; let { collapse: { field } } = uiSchema; @@ -159,6 +198,7 @@ class CollapsibleField extends Component { title={title} uiSchema={uiSchema} collapsed={collapsed} + formContext={formContext} onAdd={this.handleAdd} onChange={this.handleCollapsed} /> @@ -191,6 +231,12 @@ CollapsibleField.propTypes = { props: PropTypes.object, }), ]), + actions: PropTypes.arrayOf( + PropTypes.shape({ + component: PropTypes.string.isRequired, + props: PropTypes.object, + }) + ), wrapClassName: PropTypes.string, }).isRequired, }).isRequired, From 203ecea4cb1fbbc105496dbacbb103cd5d19ca03 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Mon, 27 Nov 2017 12:20:10 +0100 Subject: [PATCH 117/297] fix #56 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 2b105c3..992b281 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,10 @@ You can customize presentation of collapsible field, with "collapse" object in u - `addElement` (experimental) representation element for add function (for example if you want to show modal on add icon press, here where this would be) - `function(schema, uiSchema, onChange)` that returns React Component to render for add function - `string` `field` definition from `react-jsonschema-form` catalogue +- `actions` (experimental) allows to add additional actions to collapsible menu + - `object` that allows to render any kind of `action` you need, which will be sourced from `formContext` `allActions` configuration + - `component` `string` name of the component, that will be sourced from `formContext.allActions` object + - `props` `object` additional properties for rendered component - `legend` (experimental) allows to add additional information under collapsed field - `string` text to be rendered under collapsible field - `object` that allows to render any kind of `legend` you need, which will be sourced from `formContext` `legends` configuration From 693cd04b57230d18ca08c7137dd4759969c15642 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Mon, 27 Nov 2017 12:24:21 +0100 Subject: [PATCH 118/297] Releasing new version --- README.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 992b281..0490e20 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ You can customize presentation of collapsible field, with "collapse" object in u - `function(schema, uiSchema, onChange)` that returns React Component to render for add function - `string` `field` definition from `react-jsonschema-form` catalogue - `actions` (experimental) allows to add additional actions to collapsible menu - - `object` that allows to render any kind of `action` you need, which will be sourced from `formContext` `allActions` configuration + - `array` of `objects` that allows to render any kind of `action` you need, which will be sourced from `formContext` `allActions` configuration - `component` `string` name of the component, that will be sourced from `formContext.allActions` object - `props` `object` additional properties for rendered component - `legend` (experimental) allows to add additional information under collapsed field diff --git a/package.json b/package.json index fe5fef6..df40642 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.29", + "version": "0.8.30", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 3b46654a161034a2e02c19e3470d277ebd2bdf5b Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 30 Nov 2017 15:55:07 +0000 Subject: [PATCH 119/297] fix #57 --- src/CollapsibleField.js | 8 ++++++-- src/table/actionHeaderFactory.js | 3 ++- src/table/index.js | 8 +++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 59dbd39..67f9e31 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -21,7 +21,9 @@ class CollapseMenuAction extends Component { ); return (

- Can't find {action.component} in formContext.allActions + Can't find {action.component} in formContext. + allActions +

); } @@ -92,7 +94,9 @@ class CollapseLegend extends Component { console.error(`Can't find ${legend.components} in formContext.legends`); return (

- Can't find {legend.component} in formContext.legends + Can't find {legend.component} in formContext. + legends +

); } diff --git a/src/table/actionHeaderFactory.js b/src/table/actionHeaderFactory.js index e1b0c68..bc4b113 100644 --- a/src/table/actionHeaderFactory.js +++ b/src/table/actionHeaderFactory.js @@ -24,7 +24,8 @@ function actionColumnFrom({ action, icon, text }) { dataFormat: (cell, row, enumObject, rowIndex, formData, onChange) => ( - handleClick(cell, row, enumObject, rowIndex, formData, onChange)}> + handleClick(cell, row, enumObject, rowIndex, formData, onChange) + }> {text} diff --git a/src/table/index.js b/src/table/index.js index 918fb9d..cbef400 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -62,7 +62,13 @@ class TableField extends Component { componentDidUpdate() { if (this.adding) { let { uiSchema: { table: { focusOnAdd } } } = this.props; - let { table: { refs: { body } } } = this.refs; + let body = this.refs.table.refs.body + ? this.refs.table.refs.body + : this.refs.table.body; + if (!body || !body.handleEditCell) { + console.error("Can't find body in the table"); + return; + } body.handleEditCell(this.props.formData.length, focusOnAdd); } } From 0bd1c7fd8cd83deacb3d0f2bc249ea538eb1a0f4 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Thu, 30 Nov 2017 15:56:35 +0000 Subject: [PATCH 120/297] 0.8.31 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 014caa5..0b28144 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.29", + "version": "0.8.31", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index df40642..6fe14a0 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.30", + "version": "0.8.31", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From d7afe67e4c8ae857c80bf19e8db1da19ee70aca4 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 3 Dec 2017 13:42:30 +0000 Subject: [PATCH 121/297] Updating dependencies https://github.com/RxNT/encounter-playground/issues/78 --- package.json | 5 ++--- playground/app/rte/index.js | 5 +---- playground/index.html | 4 ++++ webpack.config.js | 7 +++++++ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 6fe14a0..3230dea 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,6 @@ "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-polyfill": "^6.26.0", "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.26.0", @@ -84,7 +83,7 @@ "husky": "^0.14.3", "jest": "^21.2.1", "jsdom": "^11.3.0", - "lint-staged": "^4.3.0", + "lint-staged": "^6.0.0", "prettier": "^1.7.4", "react": "^16.0.0", "react-bootstrap-table": "^4.1.1", @@ -100,7 +99,7 @@ "selectn": "^1.1.2", "sinon": "^4.1.1", "style-loader": "^0.19.0", - "webpack": "^3.8.1", + "webpack": "^3.9.1", "webpack-dev-server": "^2.9.3", "webpack-hot-middleware": "^2.20.0" }, diff --git a/playground/app/rte/index.js b/playground/app/rte/index.js index 2122c36..1065828 100644 --- a/playground/app/rte/index.js +++ b/playground/app/rte/index.js @@ -14,10 +14,7 @@ export default function goalsField() { classNames: "col-md-12", "ui:field": "rte", rte: { - editorStyle: { - minHeight: "183px", - }, - placeholder: "\n\n\n", + placeholder: "

", }, }, }; diff --git a/playground/index.html b/playground/index.html index 1a2cf74..c8731f6 100644 --- a/playground/index.html +++ b/playground/index.html @@ -23,6 +23,10 @@ min-height: 100%; } + .public-DraftEditor-content { + height: 183px; + } + diff --git a/webpack.config.js b/webpack.config.js index fbaff6f..834ea7e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -28,6 +28,13 @@ module.exports = { use: { loader: 'babel-loader', } + }, + { + test: /\.css$/, + loaders: [ + 'style-loader', + 'css-loader?modules' + ] } ] }, From c4b66b40a9cdf9d6d950ebda8fea0ab6d4a22314 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 3 Dec 2017 14:59:46 +0000 Subject: [PATCH 122/297] #58 --- playground/app/rte/index.js | 11 +++++++---- playground/index.html | 4 ++-- src/RTEField.js | 35 +++++++++++++++++++++++++---------- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/playground/app/rte/index.js b/playground/app/rte/index.js index 1065828..b030164 100644 --- a/playground/app/rte/index.js +++ b/playground/app/rte/index.js @@ -5,17 +5,20 @@ export default function goalsField() { rte: { type: "string", title: "RTE", + default: "


", }, }, }; let uiSchema = { rte: { - classNames: "col-md-12", - "ui:field": "rte", - rte: { - placeholder: "

", + updateOnBlur: true, + "ui:field": "collapsible", + collapse: { + field: "rte", + collapsed: false, }, + classNames: "col-md-12", }, }; diff --git a/playground/index.html b/playground/index.html index c8731f6..fb0a3e7 100644 --- a/playground/index.html +++ b/playground/index.html @@ -23,8 +23,8 @@ min-height: 100%; } - .public-DraftEditor-content { - height: 183px; + .DraftEditor-editorContainer { + height: 183px !important; } diff --git a/src/RTEField.js b/src/RTEField.js index e4c3af9..61c3c65 100644 --- a/src/RTEField.js +++ b/src/RTEField.js @@ -17,29 +17,44 @@ export default class RTEField extends Component { }; } - handleChange = value => { + updateFormData = () => { let { uiSchema: { rte: { format = DEFAULT_FORMAT } = {} }, onChange, } = this.props; - this.setState({ value }); + let { value } = this.state; if (onChange) { - // Send the changes up to the parent component as an HTML string. - // This is here to demonstrate using `.toString()` but in a real app it - // would be better to avoid generating a string on each change. onChange(value.toString(format)); } }; + handleChange = value => { + let { uiSchema: { updateOnBlur = false } } = this.props; + this.setState({ value }, () => !updateOnBlur && this.updateFormData()); + }; + + handleBlur = () => { + let { uiSchema: { updateOnBlur = false } } = this.props; + if (updateOnBlur) { + this.updateFormData(); + } + }; + + componentWillUnmount() { + this.handleBlur(); + } + render() { let { uiSchema: { rte } } = this.props; return ( - +
+ +
); } } From 9e5136f6714e22c74b70f7435c4d266614d3a64f Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 3 Dec 2017 15:04:05 +0000 Subject: [PATCH 123/297] fix #58 --- README.md | 1 + src/RTEField.js | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0490e20..b78ae1c 100644 --- a/README.md +++ b/README.md @@ -453,6 +453,7 @@ The simplest configuration would be The only property this field requires is `format` - `format` `string` an `rte` output format (default `html`) +- `updateOnBlur` `boolean` allows for RTE update parent form only after edit finished, to minimize calculations and redraw (default `false`) As with other projects, all configurations, that you'll configure unser `uiSchema` `rte` field will be transferred to the actual component. diff --git a/src/RTEField.js b/src/RTEField.js index 61c3c65..74a4cf2 100644 --- a/src/RTEField.js +++ b/src/RTEField.js @@ -1,4 +1,5 @@ import React, { Component } from "react"; +import PropTypes from "prop-types"; import RichTextEditor from "react-rte"; const DEFAULT_FORMAT = "html"; @@ -48,13 +49,21 @@ export default class RTEField extends Component { let { uiSchema: { rte } } = this.props; return ( -
- -
+ ); } } + +RTEField.propTypes = { + uiSchema: PropTypes.shape({ + updateOnBlur: PropTypes.bool, + rte: PropTypes.shape({ + format: PropTypes.string, + }), + }), +}; From fb12560b46295672fe3d4fee6f41dbed58f0ea41 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 3 Dec 2017 15:05:28 +0000 Subject: [PATCH 124/297] 0.8.32 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b28144..b556ce7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.31", + "version": "0.8.32", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index 3230dea..f6a125a 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.31", + "version": "0.8.32", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From ad4c844175d3bc0c1b570ce87e548f675595984a Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 3 Dec 2017 23:11:39 +0000 Subject: [PATCH 125/297] Enabling 'ui:autofocus' on RTE field --- package.json | 2 +- playground/app/rte/index.js | 3 ++- src/RTEField.js | 6 ++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f6a125a..b0bb70d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.32", + "version": "0.8.33", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", diff --git a/playground/app/rte/index.js b/playground/app/rte/index.js index b030164..e3c93c1 100644 --- a/playground/app/rte/index.js +++ b/playground/app/rte/index.js @@ -16,8 +16,9 @@ export default function goalsField() { "ui:field": "collapsible", collapse: { field: "rte", - collapsed: false, + collapsed: true, }, + "ui:autofocus": true, classNames: "col-md-12", }, }; diff --git a/src/RTEField.js b/src/RTEField.js index 74a4cf2..1071f8b 100644 --- a/src/RTEField.js +++ b/src/RTEField.js @@ -41,17 +41,15 @@ export default class RTEField extends Component { } }; - componentWillUnmount() { - this.handleBlur(); - } - render() { let { uiSchema: { rte } } = this.props; + let autoFocus = this.props.uiSchema["ui:autofocus"]; return ( From 9d91eab66389d564fdb26f24ca953435a4b30edd Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 3 Dec 2017 23:12:38 +0000 Subject: [PATCH 126/297] 0.8.34 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b556ce7..29bb385 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.32", + "version": "0.8.34", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index b0bb70d..44d4efc 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.33", + "version": "0.8.34", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 91998c07f6946818561fdbfa4ef0f720b9faf13b Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 5 Dec 2017 08:44:51 +0000 Subject: [PATCH 127/297] fix #59 --- playground/app/App.js | 7 ++ playground/app/rte2/index.js | 4 + playground/app/rte2/schema.json | 18 ++++ playground/app/rte2/uiSchema.json | 173 ++++++++++++++++++++++++++++++ src/table/columnHeadersFactory.js | 11 +- src/table/tableConfFactory.js | 7 +- test/issues/59.test.js | 141 ++++++++++++++++++++++++ 7 files changed, 353 insertions(+), 8 deletions(-) create mode 100644 playground/app/rte2/index.js create mode 100644 playground/app/rte2/schema.json create mode 100644 playground/app/rte2/uiSchema.json create mode 100644 test/issues/59.test.js diff --git a/playground/app/App.js b/playground/app/App.js index e85f945..2c0ae6b 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -6,6 +6,7 @@ import typeahead from "./order"; import medications from "./medications"; import typeaheadNonExpandable from "./typeaheadNonExpandable"; import rte from "./rte"; +import rte2 from "./rte2"; import dx from "./dx"; export default function App() { @@ -23,6 +24,12 @@ export default function App() { return (
+

" + }, + "hpi": { + "type": "string", + "title": "HPI", + "default": "


" + } + } + } +} \ No newline at end of file diff --git a/playground/app/rte2/uiSchema.json b/playground/app/rte2/uiSchema.json new file mode 100644 index 0000000..9da7c5e --- /dev/null +++ b/playground/app/rte2/uiSchema.json @@ -0,0 +1,173 @@ +{ + "uiSchema": { + "cc": { + "classNames": "col-md-12", + "nav": "intake", + "ui:field": "collapsible", + "updateOnBlur": true, + "rte": { + "toolbarConfig": { + "display": [ + "INLINE_STYLE_BUTTONS", + "BLOCK_TYPE_BUTTONS", + "BLOCK_TYPE_DROPDOWN", + "HISTORY_BUTTONS" + ], + "INLINE_STYLE_BUTTONS": [ + { + "label": "Bold", + "style": "BOLD" + }, + { + "label": "Italic", + "style": "ITALIC" + }, + { + "label": "Strikethrough", + "style": "STRIKETHROUGH" + }, + { + "label": "Monospace", + "style": "CODE" + }, + { + "label": "Underline", + "style": "UNDERLINE" + } + ], + "BLOCK_TYPE_DROPDOWN": [ + { + "label": "Normal", + "style": "unstyled" + }, + { + "label": "Heading Large", + "style": "header-one" + }, + { + "label": "Heading Medium", + "style": "header-two" + }, + { + "label": "Heading Small", + "style": "header-three" + }, + { + "label": "Code Block", + "style": "code-block" + } + ], + "BLOCK_TYPE_BUTTONS": [ + { + "label": "UL", + "style": "unordered-list-item" + }, + { + "label": "OL", + "style": "ordered-list-item" + }, + { + "label": "Blockquote", + "style": "blockquote" + } + ], + "extraProps": { + "tabIndex": -1 + } + } + }, + "ui:options": { + "label": false + }, + "collapse": { + "field": "rte", + "collapsed": false + }, + "ui:autofocus": true + }, + "hpi": { + "classNames": "col-md-12", + "nav": "intake", + "ui:field": "collapsible", + "updateOnBlur": true, + "rte": { + "toolbarConfig": { + "display": [ + "INLINE_STYLE_BUTTONS", + "BLOCK_TYPE_BUTTONS", + "BLOCK_TYPE_DROPDOWN", + "HISTORY_BUTTONS" + ], + "INLINE_STYLE_BUTTONS": [ + { + "label": "Bold", + "style": "BOLD" + }, + { + "label": "Italic", + "style": "ITALIC" + }, + { + "label": "Strikethrough", + "style": "STRIKETHROUGH" + }, + { + "label": "Monospace", + "style": "CODE" + }, + { + "label": "Underline", + "style": "UNDERLINE" + } + ], + "BLOCK_TYPE_DROPDOWN": [ + { + "label": "Normal", + "style": "unstyled" + }, + { + "label": "Heading Large", + "style": "header-one" + }, + { + "label": "Heading Medium", + "style": "header-two" + }, + { + "label": "Heading Small", + "style": "header-three" + }, + { + "label": "Code Block", + "style": "code-block" + } + ], + "BLOCK_TYPE_BUTTONS": [ + { + "label": "UL", + "style": "unordered-list-item" + }, + { + "label": "OL", + "style": "ordered-list-item" + }, + { + "label": "Blockquote", + "style": "blockquote" + } + ], + "extraProps": { + "tabIndex": -1 + } + } + }, + "ui:options": { + "label": false + }, + "collapse": { + "field": "rte", + "collapsed": false + } + } + } +} \ No newline at end of file diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index 7548ff7..aed96a2 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -110,9 +110,10 @@ const overrideColumns = (columns, schema, uiSchema, fields) => { if (!colConf) { return col; } - overrideColDataFormat(colConf); - overrideColEditable(colConf, schema, fields); - return Object.assign(col, colConf); + let updCol = Object.assign({}, col, colConf); + overrideColDataFormat(updCol); + overrideColEditable(updCol, schema, fields); + return updCol; }); return columnsWithOverrides; @@ -166,7 +167,7 @@ const withColumnCss = columns => { return columns; }; -const columnHeadersFrom = ( +const columnHeadersFactory = ( schema, uiSchema, fields = {}, @@ -189,4 +190,4 @@ const columnHeadersFrom = ( return columnsWithCSS; }; -export default columnHeadersFrom; +export default columnHeadersFactory; diff --git a/src/table/tableConfFactory.js b/src/table/tableConfFactory.js index f04457a..4890325 100644 --- a/src/table/tableConfFactory.js +++ b/src/table/tableConfFactory.js @@ -29,8 +29,8 @@ export default function tableConfFrom( afterSaveCell, afterDeleteRow ) { - if (table.keyField === undefined || table.keyField === POSITION_KEY) { - table.keyField = POSITION_KEY; + let { keyField = POSITION_KEY } = table; + if (keyField === POSITION_KEY) { formData = addPosition(formData); } @@ -39,7 +39,8 @@ export default function tableConfFrom( data: formData, }, DEFAULT_TABLE_CONF, - table + table, + { keyField } ); tableConf.cellEdit.afterSaveCell = afterSaveCell; diff --git a/test/issues/59.test.js b/test/issues/59.test.js new file mode 100644 index 0000000..1c0baa4 --- /dev/null +++ b/test/issues/59.test.js @@ -0,0 +1,141 @@ +import tableConfFactory from "../../src/table/tableConfFactory"; +import columnHeadersFactory from "../../src/table/columnHeadersFactory"; +import fields from "../../src"; + +const schema = { + type: "array", + title: "Medications", + items: { + required: [], + type: "object", + properties: { + drugId: { + type: "string", + }, + drugName: { + type: "string", + title: "Drug Name", + }, + dosage: { + type: "string", + title: "Dosage", + }, + quantity: { + type: "string", + title: "Quantity", + }, + unit: { + type: "string", + title: "Units", + }, + refills: { + type: "string", + title: "Refills", + }, + useGeneric: { + default: true, + type: "boolean", + title: "Use Generic", + }, + startDate: { + type: "date", + title: "Start Date", + }, + }, + }, +}; + +const uiSchema = { + classNames: "col-md-12", + "ui:field": "table", + "ui:options": { + label: false, + }, + table: { + tableCols: [ + { + dataField: "drugId", + hidden: true, + }, + { + dataField: "drugName", + field: "asyncTypeahead", + uiSchema: { + focusOnMount: true, + asyncTypeahead: { + url: + "/EHRV8PatientEncounterAPIServices/ehrv8/encounter/SearchMedications", + optionsPath: "Drugs", + mapping: { + drugName: "DrugName", + drugId: "DrugId", + }, + minLength: 2, + labelKey: "DrugName", + cleanAfterSelection: true, + }, + }, + }, + { + dataField: "dosage", + className: "col-md-1", + editable: true, + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "quantity", + className: "col-md-1", + editable: true, + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "unit", + className: "col-md-1", + editable: true, + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "refills", + className: "col-md-1", + editable: true, + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + { + dataField: "useGeneric", + className: "col-md-1", + editable: true, + columnClassName: "col-md-1", + editColumnClassName: "col-md-1", + }, + ], + focusOnAdd: 1, + rightActions: [ + { + action: "delete", + className: "table-action", + columnClassName: "table-action", + editColumnClassName: "table-action", + icon: "glyphicons glyphicons-remove-circle glyPhiconRedColor", + }, + ], + }, +}; + +test("table keyField added only in internal tableConf", () => { + let tableConf = tableConfFactory(uiSchema, []); + + expect(tableConf.keyField).not.toBeUndefined(); + expect(uiSchema.table.keyField).toBeUndefined(); +}); + +test("table customEditor not added to tableConf", () => { + expect(uiSchema.table.tableCols[1].customEditor).toBeUndefined(); + + columnHeadersFactory(schema, uiSchema, fields, []); + + expect(uiSchema.table.tableCols[1].customEditor).toBeUndefined(); +}); From f2406e06db0359fd53dd6766edd892df33f40b78 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 5 Dec 2017 08:45:48 +0000 Subject: [PATCH 128/297] 0.8.35 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29bb385..167deb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.34", + "version": "0.8.35", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index 44d4efc..f1a7314 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.34", + "version": "0.8.35", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 73c1749e825ef6ccd65d8c364b673fec84364e10 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 12 Dec 2017 23:25:14 +0100 Subject: [PATCH 129/297] fix #60 --- playground/app/medications/schema.js | 60 +++++++++++++++++++++++- playground/app/medications/uiSchema.js | 64 ++++++++++++++++++++++++++ src/TypeaheadField.js | 2 +- src/table/columnHeadersFactory.js | 12 +++-- src/table/tableConfFactory.js | 8 ++-- src/utils.js | 4 ++ test/issues/60.test.js | 13 ++++++ 7 files changed, 153 insertions(+), 10 deletions(-) create mode 100644 test/issues/60.test.js diff --git a/playground/app/medications/schema.js b/playground/app/medications/schema.js index 9eeef28..01fac4a 100644 --- a/playground/app/medications/schema.js +++ b/playground/app/medications/schema.js @@ -116,7 +116,7 @@ export default { "Milliequivalent", "Needle Free Injection", "Pen Needle", - "Pre-filled Pen Syringe", + "Pre - filled Pen Syringe", "Pump", "Unspecified", ], @@ -140,5 +140,63 @@ export default { }, }, }, + allergyData: { + type: "object", + title: "Allergies", + default: {}, + required: [], + properties: { + noKnownAllergies: { + type: "boolean", + title: "No Known Allergies", + default: false, + rxnt: "NoKnownAllergies", + }, + noKnownDrugAllergies: { + type: "boolean", + title: "No Known Drug Allergies", + default: false, + rxnt: "NoKnownDrugAllergies", + }, + allergies: { + type: "array", + title: "Allergies", + default: [], + rxnt: "PatientAllergies", + items: { + required: ["allergyName", "allergyActive", "allergyDate"], + type: "object", + properties: { + allergyId: { + type: "number", + title: "Allergy ID", + }, + allergyName: { + type: "string", + title: "Allergy Name", + }, + allergyReaction: { + type: "string", + title: "Allergy Reaction", + }, + allergyComments: { + type: "string", + title: "Allergy Comments", + }, + allergyActive: { + type: "boolean", + title: "Allergy Active", + default: false, + }, + allergyDate: { + type: "string", + title: "Allergy Identified On", + format: "date", + }, + }, + }, + }, + }, + }, }, }; diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 4d0f41e..4ee116c 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -249,4 +249,68 @@ export default { nav: ["medications"], }, }, + allergyData: { + classNames: "col-md-12", + nav: "intake", + "ui:order": ["noKnownAllergies", "noKnownDrugAllergies", "allergies"], + "ui:field": "collapsible", + noKnownAllergies: { + classNames: "col-md-6", + }, + noKnownDrugAllergies: { + classNames: "col-md-6", + }, + allergies: { + classNames: "col-md-12", + "ui:field": "table", + table: { + tableCols: [ + { + dataField: "allergyId", + hidden: true, + }, + { + dataField: "allergyName", + field: "asyncTypeahead", + uiSchema: { + focusOnMount: true, + asyncTypeahead: { + url: + "/EHRV8PatientEncounterAPIServices/ehrv8/encounter/SearchAllergies", + bodyContainer: true, + optionsPath: "Allergies", + mapping: { + allergyId: "AllergyId", + allergyName: "AllergyName", + }, + labelKey: "AllergyName", + }, + }, + }, + ], + focusOnAdd: 1, + rightActions: [ + { + action: "delete", + className: "table-action", + columnClassName: "table-action", + editColumnClassName: "table-action", + icon: "glyphicons glyphicons-remove-circle glyPhiconRedColor", + }, + ], + }, + }, + "ui:options": { + label: false, + }, + collapse: { + field: "ObjectField", + collapsed: false, + icon: { + add: "glyphicon glyphicon-plus-sign glyPhiconGreen", + }, + actions: [], + addTo: "allergies", + }, + }, }; diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 33e76a2..7d66b9a 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -233,7 +233,7 @@ export class AsyncTypeaheadField extends BaseTypeaheadField { labelKey ); - let typeConf = Object.assign(DEFAULT_OPTIONS, asyncTypeahead, { + let typeConf = Object.assign({}, DEFAULT_OPTIONS, asyncTypeahead, { selected, labelKey, onChange: this.handleSelectionChange(asyncTypeahead), diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index aed96a2..e3c1718 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -82,11 +82,10 @@ export function overrideColDataFormat(colConf) { } } -const overrideColEditable = (colConf, { items: { properties } }, fields) => { +const overrideColEditable = (colConf, fieldSchema, fields) => { if (colConf.field && fields[colConf.field]) { let FieldEditor = fields[colConf.field]; let fieldUISchema = colConf.uiSchema; - let fieldSchema = properties[colConf.dataField]; colConf.customEditor = { getElement: (onUpdate, props) => ( { } }; -const overrideColumns = (columns, schema, uiSchema, fields) => { +const overrideColumns = ( + columns, + { items: { properties } }, + uiSchema, + fields +) => { let { table: { tableCols = [] } = {} } = uiSchema; let columnsWithOverrides = columns.map(col => { @@ -112,7 +116,7 @@ const overrideColumns = (columns, schema, uiSchema, fields) => { } let updCol = Object.assign({}, col, colConf); overrideColDataFormat(updCol); - overrideColEditable(updCol, schema, fields); + overrideColEditable(updCol, properties[col.dataField], fields); return updCol; }); diff --git a/src/table/tableConfFactory.js b/src/table/tableConfFactory.js index 4890325..92944c5 100644 --- a/src/table/tableConfFactory.js +++ b/src/table/tableConfFactory.js @@ -1,3 +1,5 @@ +import { deepCopy } from "../utils"; + const POSITION_KEY = "_position"; const DEFAULT_TABLE_CONF = { @@ -35,10 +37,8 @@ export default function tableConfFrom( } let tableConf = Object.assign( - { - data: formData, - }, - DEFAULT_TABLE_CONF, + { data: formData }, + deepCopy(DEFAULT_TABLE_CONF), table, { keyField } ); diff --git a/src/utils.js b/src/utils.js index 107e488..d1e246c 100644 --- a/src/utils.js +++ b/src/utils.js @@ -15,3 +15,7 @@ export function isObjectSchema(schema) { export function isArraySchema(schema) { return schema.type === "array"; } + +export function deepCopy(obj) { + return JSON.parse(JSON.stringify(obj)); +} diff --git a/test/issues/60.test.js b/test/issues/60.test.js new file mode 100644 index 0000000..157b0bc --- /dev/null +++ b/test/issues/60.test.js @@ -0,0 +1,13 @@ +import tableConfFrom from "../../src/table/tableConfFactory"; + +test("configuration do not overlap", () => { + let fConf = tableConfFrom({}, [], "first conf save", "first conf delete"); + let sConf = tableConfFrom({}, [], "second conf save", "second conf delete"); + + expect(fConf).not.toEqual(sConf); + expect(fConf.cellEdit.afterSaveCell).toEqual("first conf save"); + expect(fConf.options.afterDeleteRow).toEqual("first conf delete"); + + expect(sConf.cellEdit.afterSaveCell).toEqual("second conf save"); + expect(sConf.options.afterDeleteRow).toEqual("second conf delete"); +}); From 70145cae89876cfeadc032df798811c4c1d8e7a2 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Tue, 12 Dec 2017 23:26:18 +0100 Subject: [PATCH 130/297] 0.8.36 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 167deb3..0ad907b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.35", + "version": "0.8.36", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index f1a7314..a6ba4b2 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.35", + "version": "0.8.36", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 3bf8df178053bf875cf62890fc9b6751c8d49812 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sat, 16 Dec 2017 20:02:00 +0100 Subject: [PATCH 131/297] fix #61 --- playground/app/App.js | 7 +++++++ playground/app/simpleTable/index.js | 28 ++++++++++++++++++++++++++++ src/table/columnHeadersFactory.js | 2 +- src/table/index.js | 11 +++++++++-- 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 playground/app/simpleTable/index.js diff --git a/playground/app/App.js b/playground/app/App.js index 2c0ae6b..a916a77 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -8,6 +8,7 @@ import typeaheadNonExpandable from "./typeaheadNonExpandable"; import rte from "./rte"; import rte2 from "./rte2"; import dx from "./dx"; +import simpleTable from "./simpleTable"; export default function App() { let handleChange = ({ formData }) => console.log(JSON.stringify(formData)); @@ -24,6 +25,12 @@ export default function App() { return (
+ { }; } else if (fieldProp.format === "date-time") { return { - type: "datetime", + type: "datetime-local", }; } else if (fieldProp.format === "date") { return { diff --git a/src/table/index.js b/src/table/index.js index cbef400..ea020c9 100644 --- a/src/table/index.js +++ b/src/table/index.js @@ -3,11 +3,18 @@ import { BootstrapTable, TableHeaderColumn } from "react-bootstrap-table"; import tableConfFrom, { removePosition } from "./tableConfFactory"; import columnHeadersFrom from "./columnHeadersFactory"; -function convertFields(cellValue, { type }) { +function convertFields(cellValue, { type, format, default: def }) { if (type === "boolean") { return cellValue === "true"; } else if (type === "number") { return parseFloat(cellValue); + } else if (type === "string" && format === "date-time") { + if (cellValue === "") { + return def; + } else { + let date = new Date(cellValue); + return date.toISOString(); + } } return cellValue; } @@ -51,7 +58,7 @@ class TableField extends Component { } componentWillReceiveProps(nextProps) { - let { uiSchema: { table: { focusOnAdd } } } = nextProps; + let { uiSchema: { table: { focusOnAdd } = {} } } = nextProps; this.adding = focusOnAdd !== undefined && nextProps.formData && From b0ccbfd3e2ab111687f3c8cfbf3802566dd7cbcd Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sat, 16 Dec 2017 20:03:07 +0100 Subject: [PATCH 132/297] 0.8.37 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0ad907b..51735fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.8.36", + "version": "0.8.37", "lockfileVersion": 1, "dependencies": { "@types/node": { diff --git a/package.json b/package.json index a6ba4b2..b8f5721 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.8.36", + "version": "0.8.37", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 182f1119248f1a3e80956cc27f1cb4d4f5cae43d Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sun, 17 Dec 2017 17:52:20 +0100 Subject: [PATCH 133/297] #62 --- package.json | 14 +- playground/app/App.js | 8 + playground/app/react-date-picker/index.js | 38 ++++ playground/index.html | 5 +- playground/style.css | 223 ++++++++++++++++++++++ src/ReactDatePicker.js | 50 +++++ src/index.js | 2 + 7 files changed, 332 insertions(+), 8 deletions(-) create mode 100644 playground/app/react-date-picker/index.js create mode 100644 playground/style.css create mode 100644 src/ReactDatePicker.js diff --git a/package.json b/package.json index b8f5721..9d55b10 100644 --- a/package.json +++ b/package.json @@ -42,10 +42,11 @@ "node": ">=8.0.0" }, "peerDependencies": { - "prop-types": "^15.6.0", - "react": "^16.0.0", - "react-bootstrap-table": "^4.1.0", - "react-bootstrap-typeahead": "v1.4.2", + "prop-types": "^15.x", + "react": "^16.x", + "react-bootstrap-table": "^4.x", + "react-bootstrap-typeahead": "v2.x", + "react-day-picker": "^7.x", "react-rte": "^0.15.0" }, "dependencies": { @@ -86,9 +87,10 @@ "lint-staged": "^6.0.0", "prettier": "^1.7.4", "react": "^16.0.0", - "react-bootstrap-table": "^4.1.1", - "react-bootstrap-typeahead": "v1.4.2", + "react-bootstrap-table": "^4.3.0", + "react-bootstrap-typeahead": "v2.0.2", "react-dom": "^16.0.0", + "react-day-picker": "^7.0.5", "react-jsonschema-form": "^1.0.0", "react-rte": "^0.15.0", "react-test-renderer": "^16.0.0", diff --git a/playground/app/App.js b/playground/app/App.js index a916a77..3f48b77 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -1,4 +1,5 @@ import React from "react"; + import fields from "../../src/index"; import Form from "react-jsonschema-form"; @@ -6,6 +7,7 @@ import typeahead from "./order"; import medications from "./medications"; import typeaheadNonExpandable from "./typeaheadNonExpandable"; import rte from "./rte"; +import datePicker from "./react-date-picker"; import rte2 from "./rte2"; import dx from "./dx"; import simpleTable from "./simpleTable"; @@ -25,6 +27,12 @@ export default function App() { return (
+ Form with pagination - + + @@ -12,7 +13,7 @@ - + diff --git a/playground/style.css b/playground/style.css index 4b16645..e6c8495 100644 --- a/playground/style.css +++ b/playground/style.css @@ -228,4 +228,866 @@ } .deleted-row-boolean-column > label { text-decoration : line-through; -} \ No newline at end of file +} + +/* Draft RTE CSS*/ + +.rdw-option-wrapper { + border: 1px solid #F1F1F1; + padding: 5px; + min-width: 25px; + height: 20px; + border-radius: 2px; + margin: 0 4px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + background: white; + text-transform: capitalize; +} +.rdw-option-wrapper:hover { + box-shadow: 1px 1px 0px #333; +} +.rdw-option-wrapper:active { + box-shadow: 1px 1px 0px #333 inset; +} +.rdw-option-active { + box-shadow: 1px 1px 0px #BFBDBD inset; +} +.rdw-option-disabled { + opacity: 0.3; + cursor: default; +} +.rdw-dropdown-wrapper { + height: 30px; + background: white; + cursor: pointer; + border: 1px solid #F1F1F1; + border-radius: 2px; + margin: 0 3px; + text-transform: capitalize; + background: white; +} +.rdw-dropdown-wrapper:focus { + outline: none; +} +.rdw-dropdown-wrapper:hover { + box-shadow: 1px 1px 0px #BFBDBD; + background-color: #FFFFFF; +} +.rdw-dropdown-wrapper:active { + box-shadow: 1px 1px 0px #BFBDBD inset; +} +.rdw-dropdown-carettoopen { + height: 0px; + width: 0px; + position: absolute; + top: 35%; + right: 10%; + border-top: 6px solid black; + border-left: 5px solid transparent; + border-right: 5px solid transparent; +} +.rdw-dropdown-carettoclose { + height: 0px; + width: 0px; + position: absolute; + top: 35%; + right: 10%; + border-bottom: 6px solid black; + border-left: 5px solid transparent; + border-right: 5px solid transparent; +} +.rdw-dropdown-selectedtext { + display: flex; + position: relative; + height: 100%; + align-items: center; + padding: 0 5px; +} +.rdw-dropdown-optionwrapper { + z-index: 100; + position: relative; + border: 1px solid #F1F1F1; + width: 98%; + background: white; + border-radius: 2px; + margin: 0; + padding: 0; + max-height: 250px; + overflow-y: scroll; +} +.rdw-dropdown-optionwrapper:hover { + box-shadow: 1px 1px 0px #BFBDBD; + background-color: #FFFFFF; +} +.rdw-dropdownoption-default { + min-height: 25px; + display: flex; + align-items: center; + padding: 0 5px; +} +.rdw-dropdownoption-highlighted { + background: #F1F1F1; +} +.rdw-dropdownoption-active { + background: #f5f5f5; +} +.rdw-dropdownoption-disabled { + opacity: 0.3; + cursor: default; +} +.rdw-inline-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-inline-dropdown { + width: 50px; +} +.rdw-inline-dropdownoption { + height: 40px; + display: flex; + justify-content: center; +} +.rdw-block-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-block-dropdown { + width: 110px; +} +.rdw-fontsize-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-fontsize-dropdown { + min-width: 40px; +} +.rdw-fontsize-option { + display: flex; + justify-content: center; +} +.rdw-fontfamily-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-fontfamily-dropdown { + width: 115px; +} +.rdw-fontfamily-placeholder { + white-space: nowrap; + max-width: 90px; + overflow: hidden; + text-overflow: ellipsis; +} +.rdw-fontfamily-optionwrapper { + width: 140px; +} +.rdw-list-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-list-dropdown { + width: 50px; + z-index: 90; +} +.rdw-list-dropdownOption { + height: 40px; + display: flex; + justify-content: center; +} +.rdw-text-align-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-text-align-dropdown { + width: 50px; + z-index: 90; +} +.rdw-text-align-dropdownOption { + height: 40px; + display: flex; + justify-content: center; +} +.rdw-right-aligned-block { + text-align: right; +} +.rdw-left-aligned-block { + text-align: left !important; +} +.rdw-center-aligned-block { + text-align: center !important; +} +.rdw-justify-aligned-block { + text-align: justify !important; +} +.rdw-right-aligned-block > div { + display: inline-block; +} +.rdw-left-aligned-block > div { + display: inline-block; +} +.rdw-center-aligned-block > div { + display: inline-block; +} +.rdw-justify-aligned-block > div { + display: inline-block; +} +.rdw-colorpicker-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; + position: relative; +} +.rdw-colorpicker-modal { + position: absolute; + top: 35px; + left: 5px; + display: flex; + flex-direction: column; + width: 175px; + height: 175px; + border: 1px solid #F1F1F1; + padding: 15px; + border-radius: 2px; + z-index: 100; + background: white; + box-shadow: 3px 3px 5px #BFBDBD; +} +.rdw-colorpicker-modal-header { + display: flex; + padding-bottom: 5px; +} +.rdw-colorpicker-modal-style-label { + font-size: 15px; + width: 50%; + text-align: center; + cursor: pointer; + padding: 0 10px 5px; +} +.rdw-colorpicker-modal-style-label-active { + border-bottom: 2px solid #0a66b7; +} +.rdw-colorpicker-modal-options { + margin: 5px auto; + display: flex; + width: 100%; + height: 100%; + flex-wrap: wrap; + overflow: scroll; +} +.rdw-colorpicker-cube { + width: 22px; + height: 22px; + border: 1px solid #F1F1F1; +} +.rdw-colorpicker-option { + margin: 3px; + padding: 0; + min-height: 20px; + border: none; + width: 22px; + height: 22px; + min-width: 22px; + box-shadow: 1px 2px 1px #BFBDBD inset; +} +.rdw-colorpicker-option:hover { + box-shadow: 1px 2px 1px #BFBDBD; +} +.rdw-colorpicker-option:active { + box-shadow: -1px -2px 1px #BFBDBD; +} +.rdw-colorpicker-option-active { + box-shadow: 0px 0px 2px 2px #BFBDBD; +} +.rdw-link-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; + position: relative; +} +.rdw-link-dropdown { + width: 50px; +} +.rdw-link-dropdownOption { + height: 40px; + display: flex; + justify-content: center; +} +.rdw-link-dropdownPlaceholder { + margin-left: 8px; +} +.rdw-link-modal { + position: absolute; + top: 35px; + left: 5px; + display: flex; + flex-direction: column; + width: 235px; + height: 230px; + border: 1px solid #F1F1F1; + padding: 15px; + border-radius: 2px; + z-index: 100; + background: white; + box-shadow: 3px 3px 5px #BFBDBD; +} +.rdw-link-modal-label { + font-size: 15px; +} +.rdw-link-modal-input { + margin-top: 5px; + border-radius: 2px; + border: 1px solid #F1F1F1; + height: 25px; + margin-bottom: 15px; + padding: 0 5px; +} +.rdw-link-modal-input:focus { + outline: none; +} +.rdw-link-modal-buttonsection { + margin: 0 auto; +} +.rdw-link-modal-target-option { + margin-bottom: 20px; +} +.rdw-link-modal-target-option > span { + margin-left: 5px; +} +.rdw-link-modal-btn { + margin-left: 10px; + width: 75px; + height: 30px; + border: 1px solid #F1F1F1; + border-radius: 2px; + cursor: pointer; + background: white; + text-transform: capitalize; +} +.rdw-link-modal-btn:hover { + box-shadow: 1px 1px 0px #BFBDBD; +} +.rdw-link-modal-btn:active { + box-shadow: 1px 1px 0px #BFBDBD inset; +} +.rdw-link-modal-btn:focus { + outline: none !important; +} +.rdw-link-modal-btn:disabled { + background: #ece9e9; +} +.rdw-link-dropdownoption { + height: 40px; + display: flex; + justify-content: center; +} +.rdw-history-dropdown { + width: 50px; +} +.rdw-embedded-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; + position: relative; +} +.rdw-embedded-modal { + position: absolute; + top: 35px; + left: 5px; + display: flex; + flex-direction: column; + width: 235px; + height: 180px; + border: 1px solid #F1F1F1; + padding: 15px; + border-radius: 2px; + z-index: 100; + background: white; + justify-content: space-between; + box-shadow: 3px 3px 5px #BFBDBD; +} +.rdw-embedded-modal-header { + font-size: 15px; + display: flex; +} +.rdw-embedded-modal-header-option { + width: 50%; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.rdw-embedded-modal-header-label { + width: 95px; + border: 1px solid #f1f1f1; + margin-top: 5px; + background: #6EB8D4; + border-bottom: 2px solid #0a66b7; +} +.rdw-embedded-modal-link-section { + display: flex; + flex-direction: column; +} +.rdw-embedded-modal-link-input { + width: 88%; + height: 35px; + margin: 10px 0; + border: 1px solid #F1F1F1; + border-radius: 2px; + font-size: 15px; + padding: 0 5px; +} +.rdw-embedded-modal-link-input-wrapper { + display: flex; + align-items: center; +} +.rdw-embedded-modal-link-input:focus { + outline: none; +} +.rdw-embedded-modal-btn-section { + display: flex; + justify-content: center; +} +.rdw-embedded-modal-btn { + margin: 0 3px; + width: 75px; + height: 30px; + border: 1px solid #F1F1F1; + border-radius: 2px; + cursor: pointer; + background: white; + text-transform: capitalize; +} +.rdw-embedded-modal-btn:hover { + box-shadow: 1px 1px 0px #BFBDBD; +} +.rdw-embedded-modal-btn:active { + box-shadow: 1px 1px 0px #BFBDBD inset; +} +.rdw-embedded-modal-btn:focus { + outline: none !important; +} +.rdw-embedded-modal-btn:disabled { + background: #ece9e9; +} +.rdw-embedded-modal-size { + align-items: center; + display: flex; + margin: 8px 0; + justify-content: space-between; +} +.rdw-embedded-modal-size-input { + width: 80%; + height: 20px; + border: 1px solid #F1F1F1; + border-radius: 2px; + font-size: 12px; +} +.rdw-embedded-modal-size-input:focus { + outline: none; +} +.rdw-emoji-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; + position: relative; +} +.rdw-emoji-modal { + overflow: auto; + position: absolute; + top: 35px; + left: 5px; + display: flex; + flex-wrap: wrap; + width: 235px; + height: 180px; + border: 1px solid #F1F1F1; + padding: 15px; + border-radius: 2px; + z-index: 100; + background: white; + box-shadow: 3px 3px 5px #BFBDBD; +} +.rdw-emoji-icon { + margin: 2.5px; + height: 24px; + width: 24px; + cursor: pointer; + font-size: 22px; + display: flex; + justify-content: center; + align-items: center; +} +.rdw-spinner { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + width: 100%; +} +.rdw-spinner > div { + width: 12px; + height: 12px; + background-color: #333; + + border-radius: 100%; + display: inline-block; + -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; + animation: sk-bouncedelay 1.4s infinite ease-in-out both; +} +.rdw-spinner .rdw-bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} +.rdw-spinner .rdw-bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} +@-webkit-keyframes sk-bouncedelay { + 0%, 80%, 100% { -webkit-transform: scale(0) } + 40% { -webkit-transform: scale(1.0) } +} +@keyframes sk-bouncedelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } 40% { + -webkit-transform: scale(1.0); + transform: scale(1.0); + } +} +.rdw-image-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; + position: relative; +} +.rdw-image-modal { + position: absolute; + top: 35px; + left: 5px; + display: flex; + flex-direction: column; + width: 235px; + border: 1px solid #F1F1F1; + padding: 15px; + border-radius: 2px; + z-index: 100; + background: white; + box-shadow: 3px 3px 5px #BFBDBD; +} +.rdw-image-modal-header { + font-size: 15px; + margin: 10px 0; + display: flex; +} +.rdw-image-modal-header-option { + width: 50%; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.rdw-image-modal-header-label { + width: 80px; + background: #f1f1f1; + border: 1px solid #f1f1f1; + margin-top: 5px; +} +.rdw-image-modal-header-label-highlighted { + background: #6EB8D4; + border-bottom: 2px solid #0a66b7; +} +.rdw-image-modal-upload-option { + width: 100%; + color: gray; + cursor: pointer; + display: flex; + border: none; + font-size: 15px; + align-items: center; + justify-content: center; + background-color: #f1f1f1; + outline: 2px dashed gray; + outline-offset: -10px; + margin: 10px 0; + padding: 9px 0; +} +.rdw-image-modal-upload-option-highlighted { + outline: 2px dashed #0a66b7; +} +.rdw-image-modal-upload-option-label { + cursor: pointer; + height: 100%; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + padding: 15px; +} +.rdw-image-modal-upload-option-label span{ + padding: 0 20px; +} +.rdw-image-modal-upload-option-image-preview { + max-width: 100%; + max-height: 200px; +} +.rdw-image-modal-upload-option-input { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; +} +.rdw-image-modal-url-section { + display: flex; + align-items: center; +} +.rdw-image-modal-url-input { + width: 90%; + height: 35px; + margin: 15px 0 12px; + border: 1px solid #F1F1F1; + border-radius: 2px; + font-size: 15px; + padding: 0 5px; +} +.rdw-image-modal-btn-section { + margin: 10px auto 0; +} +.rdw-image-modal-url-input:focus { + outline: none; +} +.rdw-image-modal-btn { + margin: 0 5px; + width: 75px; + height: 30px; + border: 1px solid #F1F1F1; + border-radius: 2px; + cursor: pointer; + background: white; + text-transform: capitalize; +} +.rdw-image-modal-btn:hover { + box-shadow: 1px 1px 0px #BFBDBD; +} +.rdw-image-modal-btn:active { + box-shadow: 1px 1px 0px #BFBDBD inset; +} +.rdw-image-modal-btn:focus { + outline: none !important; +} +.rdw-image-modal-btn:disabled { + background: #ece9e9; +} +.rdw-image-modal-spinner { + position: absolute; + top: -3px; + left: 0; + width: 100%; + height: 100%; + opacity: 0.5; +} +.rdw-image-modal-alt-input { + width: 70%; + height: 20px; + border: 1px solid #F1F1F1; + border-radius: 2px; + font-size: 12px; + margin-left: 5px; +} +.rdw-image-modal-alt-input:focus { + outline: none; +} +.rdw-image-modal-alt-lbl { + font-size: 12px; +} +.rdw-image-modal-size { + align-items: center; + display: flex; + margin: 8px 0; + justify-content: space-between; +} +.rdw-image-modal-size-input { + width: 40%; + height: 20px; + border: 1px solid #F1F1F1; + border-radius: 2px; + font-size: 12px; +} +.rdw-image-modal-size-input:focus { + outline: none; +} +.rdw-image-mandatory-sign { + color: red; + margin-left: 3px; + margin-right: 3px; +} +.rdw-remove-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; + position: relative; +} +.rdw-history-wrapper { + display: flex; + align-items: center; + margin-bottom: 6px; +} +.rdw-history-dropdownoption { + height: 40px; + display: flex; + justify-content: center; +} +.rdw-history-dropdown { + width: 50px; +} +.rdw-link-decorator-wrapper { + position: relative; +} +.rdw-link-decorator-icon { + position: absolute; + left: 40%; + top: 0; + cursor: pointer; + background-color: white; +} +.rdw-mention-link { + text-decoration: none; + color: #1236ff; + background-color: #f0fbff; + padding: 1px 2px; + border-radius: 2px; +} +.rdw-suggestion-wrapper { + position: relative; +} +.rdw-suggestion-dropdown { + position: absolute; + display: flex; + flex-direction: column; + border: 1px solid #F1F1F1; + min-width: 100px; + max-height: 150px; + overflow: auto; + background: white; + z-index: 100; +} +.rdw-suggestion-option { + padding: 7px 5px; + border-bottom: 1px solid #f1f1f1; +} +.rdw-suggestion-option-active { + background-color: #F1F1F1; +} +.rdw-hashtag-link { + text-decoration: none; + color: #1236ff; + background-color: #f0fbff; + padding: 1px 2px; + border-radius: 2px; +} +.rdw-image-alignment-options-popup { + position: absolute;; + background: white; + display: flex; + padding: 5px 2px; + border-radius: 2px; + border: 1px solid #F1F1F1; + width: 105px; + cursor: pointer; + z-index: 100; +} +.rdw-alignment-option-left { + justify-content: flex-start; +} +.rdw-image-alignment-option { + height: 15px; + width: 15px; + min-width: 15px; +} +.rdw-image-alignment { + position: relative; +} +.rdw-image-imagewrapper { + position: relative; +} +.rdw-image-center { + display: flex; + justify-content: center; +} +.rdw-image-left { + display: flex; +} +.rdw-image-right { + display: flex; + justify-content: flex-end; +} +.rdw-image-alignment-options-popup-right { + right: 0; +} +.rdw-editor-main { + min-height: 100px; + overflow: auto; + box-sizing: border-box; +} +.rdw-editor-toolbar { + padding: 6px 5px 0; + border-radius: 2px; + border: 1px solid #F1F1F1; + display: flex; + justify-content: flex-start; + background: white; + flex-wrap: wrap; + font-size: 15px; + margin-bottom: 5px; + user-select: none; +} +.public-DraftStyleDefault-block { + margin: 1em 0; +} +.rdw-editor-wrapper:focus { + outline: none; +} +.rdw-editor-wrapper { + box-sizing: content-box; +} +.rdw-editor-main blockquote { + border-left: 5px solid #f1f1f1; + padding-left: 5px; +} +.rdw-editor-main pre { + background: #f1f1f1; + border-radius: 3px; + padding: 1px 10px; +}/** + * Draft v0.9.1 + * + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{min-height:80px !important;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:0}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4} + +.draftRte-wrapper { + border: solid 0.5px #f1f1f1; +} + +.draftRte-editor { + margin: 10px !important; +} +/*# sourceMappingURL=react-draft-wysiwyg.css.map*/ \ No newline at end of file diff --git a/src/DraftRte.js b/src/DraftRte.js new file mode 100644 index 0000000..e52fa55 --- /dev/null +++ b/src/DraftRte.js @@ -0,0 +1,123 @@ +import React, { Component } from "react"; +import { EditorState, convertToRaw, ContentState } from "draft-js"; +import { Editor } from "react-draft-wysiwyg"; +import draftToHtml from "draftjs-to-html"; +import htmlToDraft from "html-to-draftjs"; +import PropTypes from "prop-types"; +import _ from "lodash"; +import { DefaultLabel } from "./Label"; + +export default class DraftRTE extends Component { + /** + * + * @param {*} props + * Currently only supports HTML + */ + constructor(props) { + super(props); + + let { formData = "" } = props; + + // Initializing the editor state (ref: https://jpuri.github.io/react-draft-wysiwyg/#/docs) + const blocksFromHtml = htmlToDraft(formData); + const { contentBlocks, entityMap } = blocksFromHtml; + const contentState = ContentState.createFromBlockArray( + contentBlocks, + entityMap + ); + let editorState = EditorState.createWithContent(contentState); + editorState = EditorState.moveFocusToEnd(editorState); + + this.state = { + editorState, + }; + } + /** + * updates formData by calling parent's onChange function with current html content + */ + updateFormData = () => { + let { onChange } = this.props; + let { editorState } = this.state; //eslint-disable-line + if (onChange) { + onChange( + draftToHtml(convertToRaw(this.state.editorState.getCurrentContent())) + ); + } + }; + + /** + * handles editor's onChange + * handles logic to update form data based on props supplied to the component + */ + onEditorStateChange = editorState => { + let { + uiSchema: { + updateOnBlur = false, + draftRte: { debounce: { interval, shouldDebounce = false } = {} } = {}, + }, + } = this.props; + this.setState({ editorState }, () => { + !updateOnBlur && !shouldDebounce && this.updateFormData(); + if (shouldDebounce && interval) { + this.handleDebounce(); + } + }); + }; + + handleDebounce = this.props.uiSchema.draftRte + ? this.props.uiSchema.draftRte.debounce + ? _.debounce( + this.updateFormData, + this.props.uiSchema.draftRte.debounce.interval + ) + : () => {} + : () => {}; //will only be executed if debounce is present + + /** + * handles the logic to update formData on blur + */ + handleBlur = () => { + let { uiSchema: { updateOnBlur = false } } = this.props; + if (updateOnBlur) { + this.updateFormData(); + } + }; + + /** + * react render function + */ + render() { + const { editorState } = this.state; + let { uiSchema: { draftRte }, idSchema: { $id } = {} } = this.props; + let autoFocus = this.props.uiSchema["ui:autofocus"] + ? this.props.uiSchema["ui:autofocus"] + : false; + + const setEditorReference = ref => { + ref && autoFocus && ref.focus(); + }; + + return ( +
+ + false} + {...draftRte} + /> +
+ ); + } +} + +DraftRTE.propTypes = { + uiSchema: PropTypes.shape({ + updateOnBlur: PropTypes.bool, + draftRte: PropTypes.object, + }), +}; diff --git a/src/index.js b/src/index.js index 792f503..44c99ac 100644 --- a/src/index.js +++ b/src/index.js @@ -6,6 +6,7 @@ import CollapsibleField from "./CollapsibleField"; import RTEField from "./RTEField"; import rdp from "./ReactDatePicker"; import SimpleLabel from "./SimpleLabel"; +import draftRte from "./DraftRte"; export default { table, @@ -17,4 +18,5 @@ export default { rte: RTEField, rdp, simpleLabel: SimpleLabel, + draftRte, }; diff --git a/src/table/actionHeaderFactory.js b/src/table/actionHeaderFactory.js index ab5dc3e..1698a3b 100644 --- a/src/table/actionHeaderFactory.js +++ b/src/table/actionHeaderFactory.js @@ -1,37 +1,43 @@ import React from "react"; -function actionFactory(action, actionConfiguration, schema) {if (action === "update") { - return (cell, row, enumObject, rowIndex, formData, onChange) => { - let newFormData = formData.slice(0); - if (rowIndex != undefined) { - newFormData.map(function(value, index){ - if (rowIndex === index){ - let actionToApply = 0; // 0 - update(soft delete), 1 - delete(hard delete) - let { mandatoryField = undefined, fieldToUpdate = undefined } = actionConfiguration; +function actionFactory(action, actionConfiguration, schema) { + if (action === "update") { + return (cell, row, enumObject, rowIndex, formData, onChange) => { + let newFormData = formData.slice(0); + if (rowIndex != undefined) { + newFormData.map(function(value, index) { + if (rowIndex === index) { + let actionToApply = 0; // 0 - update(soft delete), 1 - delete(hard delete) + let { + mandatoryField = undefined, + fieldToUpdate = undefined, + } = actionConfiguration; - if(mandatoryField !== undefined){ - mandatoryField.map((mandatory) =>{ - if(value[mandatory] === undefined || value[mandatory] === ""){ + if (mandatoryField !== undefined) { + mandatoryField.map(mandatory => { + if (value[mandatory] === undefined || value[mandatory] === "") { actionToApply = 1; } - }); - } - if(actionToApply === 0){ // just updating the Column - if(fieldToUpdate !== undefined){ - let update = []; - fieldToUpdate.map( - (fieldToUpdate) => { - if(schema[fieldToUpdate] !== undefined){ - if(schema[fieldToUpdate]["type"] === "boolean"){ + }); + } + if (actionToApply === 0) { + // just updating the Column + if (fieldToUpdate !== undefined) { + let update = []; + fieldToUpdate.map(fieldToUpdate => { + if (schema[fieldToUpdate] !== undefined) { + if (schema[fieldToUpdate]["type"] === "boolean") { update[fieldToUpdate] = !value[fieldToUpdate]; } // can add separate block for each type of input - newFormData[index] = Object.assign({}, value, update ); + newFormData[index] = Object.assign({}, value, update); } }); + } + } else if (actionToApply === 1) { + //Hard delete the row + newFormData.splice(rowIndex, 1); + onChange(newFormData); } - }else if(actionToApply === 1){ //Hard delete the row - newFormData.splice(rowIndex, 1); - onChange(newFormData); } }); } @@ -85,8 +91,7 @@ function actionColumnFrom( dataFormat: (cell, row, enumObject, rowIndex, formData, onChange) => ( - handleClick(cell, row, enumObject, rowIndex, formData, onChange) - }> + handleClick(cell, row, enumObject, rowIndex, formData, onChange)}> Date: Mon, 21 May 2018 14:51:40 -0400 Subject: [PATCH 191/297] Added a new RTE draftRTE with more functionality then react-rte --- playground/app/medications/uiSchema.js | 28 ++++++++++++-------------- src/CollapsibleField.js | 8 ++------ 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 8363683..f8c3728 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -263,21 +263,19 @@ export default { ], rightActions: [ { - "action": "update", - "className": "table-action", - "columnClassName": "table-action", - "editColumnClassName": "table-action", - "icon": "glyphicon glyphicon-plus", - "actionConfiguration": { - "action": "update", - "fieldToUpdate": [ - "isSelected" - ], - "filterField": "isSelected", - 'actionCompletedIcon' : "glyphicon glyphicon-refresh", - "actionCompletedClassName": "deleted-row", - "mandatoryField" : [ 'drugName' ] - } + action: "update", + className: "table-action", + columnClassName: "table-action", + editColumnClassName: "table-action", + icon: "glyphicon glyphicon-plus", + actionConfiguration: { + action: "update", + fieldToUpdate: ["isSelected"], + filterField: "isSelected", + actionCompletedIcon: "glyphicon glyphicon-refresh", + actionCompletedClassName: "deleted-row", + mandatoryField: ["drugName"], + }, }, { action: "moveup", diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index e40e55c..d1981da 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -21,9 +21,7 @@ class CollapseMenuAction extends Component { ); return (

- Can't find {action.component} in formContext. - allActions - + Can't find {action.component} in formContext.allActions

); } @@ -132,9 +130,7 @@ class CollapseLegend extends Component { console.error(`Can't find ${legend.components} in formContext.legends`); return (

- Can't find {legend.component} in formContext. - legends - + Can't find {legend.component} in formContext.legends

); } From 4299fe60e08813b92f24b8738878fed9b97dc3ac Mon Sep 17 00:00:00 2001 From: Samip Date: Mon, 21 May 2018 14:53:43 -0400 Subject: [PATCH 192/297] 0.9.18 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d77a12c..197dd35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.17", + "version": "0.9.18", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a104dc8..8b73bc0 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.17", + "version": "0.9.18", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 50f8f9b39d4472e9b47209a69167d8ba75c880af Mon Sep 17 00:00:00 2001 From: Samip Date: Mon, 21 May 2018 16:43:26 -0400 Subject: [PATCH 193/297] Fixed issue with auto focus --- src/DraftRte.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/DraftRte.js b/src/DraftRte.js index e52fa55..9136ea0 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -26,7 +26,6 @@ export default class DraftRTE extends Component { entityMap ); let editorState = EditorState.createWithContent(contentState); - editorState = EditorState.moveFocusToEnd(editorState); this.state = { editorState, @@ -83,19 +82,19 @@ export default class DraftRTE extends Component { } }; + setEditorReference = ref => { + let autoFocus = this.props.uiSchema["ui:autofocus"] + ? this.props.uiSchema["ui:autofocus"] + : false; + ref && autoFocus && ref.focus(); + }; + /** * react render function */ render() { const { editorState } = this.state; let { uiSchema: { draftRte }, idSchema: { $id } = {} } = this.props; - let autoFocus = this.props.uiSchema["ui:autofocus"] - ? this.props.uiSchema["ui:autofocus"] - : false; - - const setEditorReference = ref => { - ref && autoFocus && ref.focus(); - }; return (
@@ -106,7 +105,7 @@ export default class DraftRTE extends Component { editorState={editorState} onEditorStateChange={this.onEditorStateChange} onBlur={this.handleBlur} - editorRef={setEditorReference} + editorRef={this.setEditorReference} handlePastedText={() => false} {...draftRte} /> From 3aeb19768e0ca6edd3371bbd882518ee848d51f1 Mon Sep 17 00:00:00 2001 From: Samip Date: Mon, 21 May 2018 16:45:26 -0400 Subject: [PATCH 194/297] 0.9.19 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 197dd35..9270e41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.18", + "version": "0.9.19", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8b73bc0..f6409fb 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.18", + "version": "0.9.19", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From e29e5f848ec4f75cd75d71559f7a06feb32ae415 Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 24 May 2018 10:42:42 -0400 Subject: [PATCH 195/297] EN-348 Fixed issues with adding new items from collapsible field --- .gitignore | 2 ++ playground/app/rte/index.js | 5 +++++ src/CollapsibleField.js | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/.gitignore b/.gitignore index dbea1b5..96d68e6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ dist lib yarn.lock +package-lock.json + # Numerous always-ignore extensions *.diff *.err diff --git a/playground/app/rte/index.js b/playground/app/rte/index.js index 9469da3..00d8590 100644 --- a/playground/app/rte/index.js +++ b/playground/app/rte/index.js @@ -60,6 +60,11 @@ export default function goalsField() { ], }, }, + mention: { + separator: " ", + trigger: "#", + suggestions: [{ text: "Diagnosis", value: "Diagnosis" }], + }, }, "ui:autofocus": true, classNames: "col-md-12", diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index d1981da..0f720da 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -174,6 +174,10 @@ class CollapsibleField extends Component { let { schema, uiSchema, formData, registry: { fields } } = this.props; let { collapse: { addTo, addElement } } = uiSchema; + if (schema.properties[addTo] === undefined) { + return false; + } + let fieldSchema = addTo === "self" ? schema.items : schema.properties[addTo].items; let fieldUiSchema = addTo === "self" ? uiSchema : uiSchema[addTo]; From 36adcd3fe46f473df763f7ca0793e1f809cbc8a1 Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 24 May 2018 10:56:05 -0400 Subject: [PATCH 196/297] 0.9.20 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9270e41..6391a9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.19", + "version": "0.9.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f6409fb..3ce4187 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.19", + "version": "0.9.20", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 1d4058c052934488cc65eeae9b7035bb714ace21 Mon Sep 17 00:00:00 2001 From: Anton Oparin Date: Sat, 26 May 2018 17:58:05 +0200 Subject: [PATCH 197/297] fix #79 making url optional in PropTypes --- src/TypeaheadField.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TypeaheadField.js b/src/TypeaheadField.js index 3ffc5c7..1736e3d 100644 --- a/src/TypeaheadField.js +++ b/src/TypeaheadField.js @@ -278,7 +278,7 @@ AsyncTypeaheadField.propTypes = { uiSchema: PropTypes.shape({ focusOnMount: PropTypes.bool, asyncTypeahead: PropTypes.shape({ - url: PropTypes.string.isRequired, + url: PropTypes.string, optionsPath: PropTypes.string, mapping: PropTypes.oneOfType([ PropTypes.func, From 552692aa82c711c52414a6812aef98f73a3b2aca Mon Sep 17 00:00:00 2001 From: Samip Date: Wed, 30 May 2018 15:06:24 -0400 Subject: [PATCH 198/297] 0.9.21 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6391a9b..fe7dae9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.20", + "version": "0.9.21", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3ce4187..2e91f6f 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.20", + "version": "0.9.21", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From aa5d619217bddf56b5e46fde97ef8139b6e83772 Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 31 May 2018 18:31:26 -0400 Subject: [PATCH 199/297] Fixed issues on adding data to tables --- src/CollapsibleField.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/CollapsibleField.js b/src/CollapsibleField.js index 0f720da..4e337eb 100644 --- a/src/CollapsibleField.js +++ b/src/CollapsibleField.js @@ -174,12 +174,15 @@ class CollapsibleField extends Component { let { schema, uiSchema, formData, registry: { fields } } = this.props; let { collapse: { addTo, addElement } } = uiSchema; - if (schema.properties[addTo] === undefined) { + let fieldSchema = + addTo === "self" + ? schema.items + : schema.properties + ? schema.properties[addTo] ? schema.properties[addTo].items : null + : null; + if (!fieldSchema) { return false; } - - let fieldSchema = - addTo === "self" ? schema.items : schema.properties[addTo].items; let fieldUiSchema = addTo === "self" ? uiSchema : uiSchema[addTo]; if (addElement) { From 39f21cfd7ab06612a829030927ab830211c2b3c1 Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 31 May 2018 18:35:55 -0400 Subject: [PATCH 200/297] 0.9.22 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe7dae9..3dfff90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.21", + "version": "0.9.22", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2e91f6f..8cb475c 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.21", + "version": "0.9.22", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From f188bc86450c3ddc26e196aaedec717f903bc70e Mon Sep 17 00:00:00 2001 From: xcv58 Date: Sat, 2 Jun 2018 10:21:16 -0700 Subject: [PATCH 201/297] Add only load one or more fields in README --- README.md | 138 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 79 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index 4576288..ed53aa0 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ # Catalogue -This project provides light integration over established React components, -trying to keep configurations compatible with original project. +This project provides light integration over established React components, +trying to keep configurations compatible with original project. All configurations you can specify in original projects, can be reused here. - + - Composite array field (`ui:field` > `compositeArray`) - Collapsible fields (`ui:field` > `collapsible`) - Alternative input fields (`ui:field` > `altInput`) @@ -64,7 +64,7 @@ All configurations you can specify in original projects, can be reused here. ## Use -This project uses internal react-jsonschema-form extension mechanism, through ui:field option in uiSchema. +This project uses internal react-jsonschema-form extension mechanism, through ui:field option in uiSchema. The simplest example of using it out of the box, is like this: ```js @@ -94,6 +94,33 @@ ReactDOM.render( ``` +You can load only one field you need if want to keep the bundle small. + +```js +import Form from "react-jsonschema-form"; +import { TypeaheadField } from "react-jsonschema-form-extras/lib/TypeaheadField"; + +ReactDOM.render( + , + document.getElementById("app") +); +``` +[![Edit p3z45m8rpq](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/p3z45m8rpq) + +If you want multiple fields: + +```js +import Form from "react-jsonschema-form"; +import { TypeaheadField } from "react-jsonschema-form-extras/lib/TypeaheadField"; +import ReactDatePicker from "react-jsonschema-form-extras/lib/ReactDatePicker"; + +ReactDOM.render( + , + document.getElementById("app") +); +``` +[![Edit wnyl7n07zk](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/wnyl7n07zk) + ## Composite array field (`compositeArray`) ### Purpose @@ -132,7 +159,7 @@ There are only 2 properties needed for it to work Collapsible helps you to hide content, that might take up too much space on the screen an expand it if user wishes. -### Use +### Use The simplest `uiSchema` configuration would be: @@ -151,7 +178,7 @@ This is a hidden `table` field configuration, which will be presented as collaps You can customize presentation of collapsible field, with "collapse" object in uiSchema - `field` `string` an actual hidden field to use -- `collapsed` `boolean` - indicating initial state (default `true`) +- `collapsed` `boolean` - indicating initial state (default `true`) - `icon` `object` icons configuration in `enabled` and `disabled` state - `enabled` `string` icon, when the field is shown (default `glyphicon glyphicon-chevron-down`) - `disabled` `string` icon, when field is hidden (default `glyphicon glyphicon-chevron-right`) @@ -159,24 +186,24 @@ You can customize presentation of collapsible field, with "collapse" object in u - `separate` `boolean` enable
after collapse menu (default `true`) - `wrapClassName` `string` class name to use on a parent collapse menu div (default `lead`) - `addTo` `string` array field name, to which icon will be added enables an add icon, that will be shown besides collapsible icon -- `addElement` (experimental) representation element for add function (for example if you want to show modal on add icon press, here where this would be) +- `addElement` (experimental) representation element for add function (for example if you want to show modal on add icon press, here where this would be) - `function(schema, uiSchema, onChange)` that returns React Component to render for add function - `string` `field` definition from `react-jsonschema-form` catalogue - `actions` (experimental) allows to add additional actions to collapsible menu - `array` of `objects` that allows to render any kind of `action` you need, which will be sourced from `formContext` `allActions` configuration - `component` `string` name of the component, that will be sourced from `formContext.allActions` object - - `props` `object` additional properties for rendered component + - `props` `object` additional properties for rendered component - `legend` (experimental) allows to add additional information under collapsed field - `string` text to be rendered under collapsible field - `object` that allows to render any kind of `legend` you need, which will be sourced from `formContext` `legends` configuration - `component` `string` name of the component, that will be sourced from `formContext.legends` object - - `props` `object` additional properties for rendered component - + - `props` `object` additional properties for rendered component + Additional feature of the Collapsible field is to allow adding empty value to hidden `array`, it's enabled with `addTo` feature, which can -be either `self` which assumes that Collapsible field is the target array, or it can be a property field. +be either `self` which assumes that Collapsible field is the target array, or it can be a property field. -Field `schema` `title` used as a header of the collapsible action. +Field `schema` `title` used as a header of the collapsible action. ### Examples @@ -186,21 +213,21 @@ Task: We have a `firstName` field, which is collapsible and we need to display a `LanguageLegend`, which would notify user of the language to use. -Solution: +Solution: The simplest configuration with `schema`, `uiSchema` and `formContext` would look something like this ```jsx harmony import React from "react"; import fields from "react-jsonschema-form-extras" - + let schema = { type: "object", properties: { firstName: { type: "string" } } } - + let uiSchema = { firstName: { "ui:field": "collapsible", @@ -215,13 +242,13 @@ The simplest configuration with `schema`, `uiSchema` and `formContext` would loo } } } - + let formContext = { legends: { LanguageLegend: (props) => (

Expected {props.language} characters

) } } - + ``` @@ -266,37 +293,37 @@ The simplest configuration would be ```json { "ui:field": "typeahead", - "typeahead": { + "typeahead": { "options": [ { "state": "New York" }, { "code": "Washington" }], "labelKey": "state" } } ``` - + In this case the typeahead would only have 2 options - `New York` and `Washigton` - + ### Properties - + All properties that you specify under `typeahead` will be used in the original project. - `focusOnMount` focusOn typeahead, after it was mounted to page - - `typeahead` all properties that you specify under `typeahead` will be used in the original project. + - `typeahead` all properties that you specify under `typeahead` will be used in the original project. Additionally, there are few project specific properties - `labelKey` have more flexibility in configuration - `labelKey` `string` used a labelKey in [typeahead](https://github.com/ericgio/react-bootstrap-typeahead) project - `labelKey` `array` in this case array is a list of fields in original object, which are combined in a single string with a space separator - - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields + - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields - `cleanAfterSelection` `boolean` clean selection after component was selected (default false) - `mapping` `object` that maps selected object to schema object - - + + For complete list of configurations refer to [react-bootstrap-typeahead](https://github.com/ericgio/react-bootstrap-typeahead) Here are some use case examples - + With following options - + ```json -[ +[ { "name": "Adventures of Huckleberry Finn", "author": "Mark Twain" }, @@ -318,7 +345,7 @@ With labelKey `[ "author", "name" ]`, options will be With lableKey `{ fields: [ "author", "name" ], separator: " - " }`, options will be - `Mark Twain - Adventures of Huckleberry Finn` -- `Mark Twain - The Adventures of Tom Sawyer` +- `Mark Twain - The Adventures of Tom Sawyer` #### Mapping @@ -361,7 +388,7 @@ Mapping as object (we want to change mapping to creator and book) would result in - `{ book: "Adventures of Huckleberry Finn", creator: "Mark Twain" }` - `{ book: "The Adventures of Tom Sawyer", creator: "Mark Twain" }` - + Mapping as function (let's say we want to take a first name of the author) ```js let uiSchema = { @@ -372,10 +399,10 @@ would result in - `"Mark"` - `"Mark"` - + ## Async Typeahead based on [react-bootstrap-typeahead](https://github.com/ericgio/react-bootstrap-typeahead) (`asyncTypeahead`) -### Purpose +### Purpose This is a wrap around `async` functionality of [typeahead](https://github.com/ericgio/react-bootstrap-typeahead), supporting some additional defaults. @@ -386,19 +413,19 @@ The simplest configuration would be ```json { "ui:field": "asyncTypeahead", - "asyncTypeahead": { + "asyncTypeahead": { "url": "https://example.com/state" } } ``` - + This will result in typeahead search with `https://example.com/state?query=${query}` - + ### Properties -Async typeahead extends default configuration list for `typeahead`, by adding few properties under `asyncTypeahead` +Async typeahead extends default configuration list for `typeahead`, by adding few properties under `asyncTypeahead` - `focusOnMount` focusOn typeahead, after it was mounted to page - - `asyncTypeahead` all properties that you specify under `typeahead` will be used in the original project. + - `asyncTypeahead` all properties that you specify under `typeahead` will be used in the original project. - `url` search url, that will be used during autocomplete - `search` function that will be querying server for data, which takes 2 parameters, and must return a Promise with a json result - `url` configured URL @@ -407,9 +434,9 @@ Async typeahead extends default configuration list for `typeahead`, by adding fe - `labelKey` have more flexibility in configuration - `labelKey` `string` used a labelKey in [typeahead](https://github.com/ericgio/react-bootstrap-typeahead) project - `labelKey` `array` in this case array is a list of fields in original object, which are combined in a single string with a space separator - - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields + - `labelKey` `object` with `fields` `array` of fields to use, `separator` string separator to use between fields - `cleanAfterSelection` `boolean` clean selection after component was selected (default false) - - `overrideOptions` if true, the user can type any text in the input field (or select an option, then modify it), + - `overrideOptions` if true, the user can type any text in the input field (or select an option, then modify it), and it will be saved in the RJSF model (default false) - `mapping` `object` that maps selected object to schema object @@ -419,7 +446,7 @@ For example, let's consider query with `Was` on `url` `https://example.com/state By default field will query results with - `https://example.com/state?query=Was`. Let's say we want to override it and query - `https://example.com/state?name=Was&maxSize=1`. - + Here is how we can do that: ```js @@ -441,7 +468,7 @@ For complete list of async typeahead configurations refer to [react-bootstrap-ty This is a simple field, that allows you to enter RTE text inside your string field. -### Use +### Use The simplest configuration would be @@ -470,9 +497,9 @@ As with other projects, all configurations, that you'll configure under `uiSchem This component wraps [react-bootstrap-table](https://github.com/AllenFang/react-bootstrap-table) for array components, with smart default configurations. ### Use - + The simplest configuration would be - + ```json { "ui:field": "table" @@ -488,9 +515,9 @@ You can use `table` field without any predefined configurations, it will generat By default table component will generate table columns, based on an array schema, with editables, based on field types. You can reuse react-jsonschema-form Components, in table column editing, to do that, you need to define -- `field` property in tableCols override section, with `uiSchema` to use for the field. +- `field` property in tableCols override section, with `uiSchema` to use for the field. -For example let's say we have allergy array, with `allergyName` coming from server source, +For example let's say we have allergy array, with `allergyName` coming from server source, we can enable `asyncTypeahead` on allergyName field in `tableCols` override like this: ```js let uiSchema = { @@ -520,7 +547,7 @@ let uiSchema = { By default order of columns is defined by `schema` properties field order. It might be not always reliable, so there is a way to override it. -By default the order will follow order of columns in `tableCols` configuration. +By default the order will follow order of columns in `tableCols` configuration. ```js @@ -557,12 +584,12 @@ let uiSchema = { }; ``` -Here although in medications property schema `dosage` goes before `name`, it will be shown first due to `tableCols` order of columns. +Here although in medications property schema `dosage` goes before `name`, it will be shown first due to `tableCols` order of columns. #### Cell dataFormat react-bootstrap-table provides custom [dataFormat](https://allenfang.github.io/react-bootstrap-table/docs.html#dataFormat) for rendering data in columns. -We needed to support serialized configuration, so we extended native functionality, with string configuration, +We needed to support serialized configuration, so we extended native functionality, with string configuration, - `object` dataFormat can be a `string` which translates into field name in the object. - `date-time` & `date` `string` dataFormat is a format of string presentation, that is generated with moment.js @@ -577,7 +604,7 @@ let schema = { items: { type: "object", properties: { - identified: { + identified: { type: "object", properties: { id: { type: "string"}, @@ -609,7 +636,7 @@ let uiSchema = { }, }; ``` -In this case dataFormat on identifier field, will translate into selecting name field in identifier object. +In this case dataFormat on identifier field, will translate into selecting name field in identifier object. ### Additional column actions @@ -665,7 +692,7 @@ let uiSchema = { ] } } -``` +``` In left panel, we have defined delete with a standard `react-bootstrap-table` format, the only difference is dataFormat signature changed, appending original formData and onChange callback to relay changes to the listening component. @@ -682,7 +709,7 @@ Right panel is defined with small syntactic sugar to simpify action defintion Allows you to use react-day-picker as input `ui:field`. This component works only with `string` formatted as `date` and `date-time`. -### Use +### Use The simplest configuration would be @@ -722,10 +749,3 @@ If you are having issues, please let us know here or on StackOverflow. ## License The project is licensed under the Apache Licence 2.0. - - - - - - - From ce724e7f7aaf13589840619e663728ecced91707 Mon Sep 17 00:00:00 2001 From: vinod Date: Tue, 12 Jun 2018 10:56:49 -0500 Subject: [PATCH 202/297] EN-124 Date Picker Issue --- playground/app/react-date-picker/index.js | 3 +- src/ReactDatePicker.js | 295 ++++++++++++++-------- 2 files changed, 188 insertions(+), 110 deletions(-) diff --git a/playground/app/react-date-picker/index.js b/playground/app/react-date-picker/index.js index f224ac2..c4f2c61 100644 --- a/playground/app/react-date-picker/index.js +++ b/playground/app/react-date-picker/index.js @@ -28,7 +28,8 @@ let uiSchema = { datePicker: { classNames: "col-md-12", "ui:field": "rdp", - }, + "yearStartFrom":2000 + }, }; let formData = { diff --git a/src/ReactDatePicker.js b/src/ReactDatePicker.js index f2494a3..43c894b 100644 --- a/src/ReactDatePicker.js +++ b/src/ReactDatePicker.js @@ -6,124 +6,201 @@ import { DefaultLabel } from "./Label"; import moment from "moment"; const DEFAULT_UPDATE_DELAY = 100; +const YEAR_DISPLAY_FROM = 1910; +const YEAR_DISPLAY_TO = new Date().getFullYear() + 20 ; function normalizeDay(day, format) { - if (day === undefined) { - return undefined; - } else if (format === "date-time") { - return day.toISOString(); - } else if (format === "date") { - return moment(day).format("YYYY-MM-DD"); - } + if (day === undefined) { + return undefined; + } else if (format === "date-time") { + return day.toISOString(); + } else if (format === "date") { + return moment(day).format("YYYY-MM-DD"); + } } -function loadFormatedDate(date, setCurrentDate) { - let formDate = date; - if (!date || date === "") { - formDate = setCurrentDate ? moment(new Date()).format("MM/DD/YYYY") : ""; - } - return formDate; +const currentYear = new Date().getFullYear(); +const fromMonth = new Date(currentYear, 0); +const toMonth = new Date(currentYear + 10, 11); + +function loadFormatedDate(date, setCurrentDate){ + let formDate = date; + if(!date || date === ""){ + formDate = (setCurrentDate) + ? (moment(new Date()).format("MM/DD/YYYY")) : ""; + } + return formDate; } -export default class ReactDatePicker extends Component { - constructor(props) { - super(props); - - let { schema: { format = "date-time" }, formData } = props; - this.day = formData - ? format === "date" - ? new Date(formData).toISOString().substr(0, 10) - : new Date(formData) - : undefined; - } - componentWillReceiveProps({ schema: { format = "date-time" }, formData }) { - if (formData) { - this.day = - format === "date" - ? new Date(formData).toISOString().substr(0, 10) - : new Date(formData); - } - } - handleKeyDown = evt => { - var eventCode = evt.which ? evt.which : event.keyCode; - if (eventCode === 13) { - this.refs.datePicker.getInput().blur(); - this.notifyChange(); - } else if ( - eventCode > 31 && - ((eventCode < 48 || eventCode > 57) && - (eventCode < 96 || eventCode > 105)) && - eventCode != 191 - ) { - evt.preventDefault(); - } /* date filed Validation , will accept only number and forward slash */ - }; - - handleBlur = () => { - let { - uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {}, //eslint-disable-line - } = this.props; - setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? - }; - - notifyChange = () => { - let day = this.day; - let { schema: { format = "date-time" }, onChange, formData } = this.props; - - let event = normalizeDay(day, format); - if (event !== formData && event != undefined) { - onChange(event); - } - }; - - handleDayChange = day => { - this.day = day; - }; - - render() { - let { - uiSchema = {}, - formData, - idSchema: { $id } = {}, - schema: { format = "date-time" }, - } = this.props; - let { rdp = {}, defaultCurrentDate = false } = uiSchema; - formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date - let dayPickerInputProps = Object.assign( - { - onDayChange: this.handleDayChange, - value: formData - ? format === "date" - ? moment(formData).format("MM/DD/YYYY") - : new Date(formData) - : undefined, - hideOnDayClick: true, - ref: "datePicker", - format: "MM/DD/YYYY", - formatDate: formatDate, - parseDate: parseDate, - inputProps: { - className: "form-control", - type: "text", - autoFocus: uiSchema["ui:autofocus"], - }, - }, - rdp - ); - dayPickerInputProps.inputProps.onBlur = this.handleBlur; - - return ( -
- - -
- ); +function YearMonthForm({ date, localeUtils, onChange,yearStartFrom }) { + + console.log(yearStartFrom); + const months = localeUtils.getMonths(); + + const years = []; + const yearStart = (!yearStartFrom ? YEAR_DISPLAY_FROM : yearStartFrom); + // console.log(years); + //console.log(yearStart + " " + YEAR_DISPLAY_TO); + + for (let i = yearStart; i <= YEAR_DISPLAY_TO; i += 1) { + years.push(i); + } + + + + const handleChange = function handleChange(e) { + const { year, month } = e.target.form; + + onChange(new Date(year.value, month.value)); + }; + + return ( +
+ + +
+ ); +} +export default class ReactDatePicker extends Component { + constructor(props) { + super(props); + this.handleYearMonthChange = this.handleYearMonthChange.bind(this); + this.state = { + month: fromMonth + }; + let { schema: { format = "date-time" }, formData } = props; + this.day = formData + ? format === "date" + ? new Date(formData).toISOString().substr(0, 10) + : new Date(formData) + : undefined; + } + + componentWillReceiveProps({ schema: { format = "date-time" }, formData }) { + if (formData) { + this.day = + format === "date" + ? new Date(formData).toISOString().substr(0, 10) + : new Date(formData); + } + } + + handleKeyDown = evt => { + var eventCode = (evt.which) ? evt.which : event.keyCode + if (eventCode === 13) { + this.refs.datePicker.getInput().blur(); + this.notifyChange(); + } else if (eventCode > 31 && ((eventCode < 48 || eventCode > 57) && (eventCode < 96 || eventCode > 105)) && eventCode != 191){ + evt.preventDefault() + } /* date filed Validation , will accept only number and forward slash */ + }; + + handleClick = evt => { + this.setState({overlay:true}); + }; + + handleBlur = () => { + let { + uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {}, //eslint-disable-line + } = this.props; + + setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? + }; + + notifyChange = () => { + let day = this.day; + let { schema: { format = "date-time" }, onChange, formData } = this.props; + + let event = normalizeDay(day, format); + if (event !== formData && event != undefined) { + onChange(event); + } + }; + + handleDayChange = day => { + this.day = day; + }; + handleYearMonthChange(month) { + this.setState({ month }); + } + render() { + + let { + uiSchema = {}, + formData, + idSchema: { $id } = {}, + schema: { format = "date-time" }, + } = this.props; + let { rdp = {}, defaultCurrentDate=false,yearStartFrom = false} = uiSchema; + formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date + + let dayPickerInputProps = Object.assign( + { + onDayChange: this.handleDayChange, + value: formData + ? format === "date" + ? moment(formData).format("MM/DD/YYYY") + : new Date(formData) + : undefined, + hideOnDayClick: true, + ref: "datePicker", + format: "MM/DD/YYYY", + formatDate: formatDate, + parseDate: parseDate, + inputProps: { + className: "form-control", + type: "text", + autoFocus: uiSchema["ui:autofocus"], + }, + }, + rdp + ); + dayPickerInputProps.inputProps.onBlur = this.handleBlur; + + const dayPickerProps = { + month: this.state.month, + fromMonth: fromMonth, + toMonth: toMonth, + captionElement: ({ date, localeUtils }) => ( + + ), + inputProps: { + className: "form-control", + type: "text", + }, + }; + return ( +
+ + +
+ ); + } } ReactDatePicker.propTypes = { - schema: PropTypes.shape({ - format: PropTypes.oneOf(["date-time", "date"]), - }), + schema: PropTypes.shape({ + format: PropTypes.oneOf(["date-time", "date"]), + }), }; From db2291d1f72948aeb8a94bea944d4a042408e5f5 Mon Sep 17 00:00:00 2001 From: rajaramg Date: Fri, 22 Jun 2018 10:55:43 +0000 Subject: [PATCH 203/297] Fixed issue with moving cursor postion at the end of text --- src/DraftRte.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/DraftRte.js b/src/DraftRte.js index 9136ea0..2da6d00 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -15,17 +15,24 @@ export default class DraftRTE extends Component { */ constructor(props) { super(props); - - let { formData = "" } = props; + let { formData = "", uiSchema } = props; + let autoFocus = uiSchema["ui:autofocus"] ? uiSchema["ui:autofocus"] : false; // Initializing the editor state (ref: https://jpuri.github.io/react-draft-wysiwyg/#/docs) const blocksFromHtml = htmlToDraft(formData); const { contentBlocks, entityMap } = blocksFromHtml; const contentState = ContentState.createFromBlockArray( contentBlocks, - entityMap + entityMap, ); - let editorState = EditorState.createWithContent(contentState); + + let editorState = null; + + if (autoFocus) { + editorState = EditorState.moveFocusToEnd(EditorState.createWithContent(contentState)); + } else { + editorState = EditorState.createWithContent(contentState); + } this.state = { editorState, From b5c0a0b768beef72a2a715a337f511ce6520f1e9 Mon Sep 17 00:00:00 2001 From: Samip Date: Fri, 22 Jun 2018 10:33:42 -0400 Subject: [PATCH 204/297] Reverted change for datepicker --- src/ReactDatePicker.js | 295 +++++++++++++++-------------------------- 1 file changed, 109 insertions(+), 186 deletions(-) diff --git a/src/ReactDatePicker.js b/src/ReactDatePicker.js index 43c894b..f2494a3 100644 --- a/src/ReactDatePicker.js +++ b/src/ReactDatePicker.js @@ -6,201 +6,124 @@ import { DefaultLabel } from "./Label"; import moment from "moment"; const DEFAULT_UPDATE_DELAY = 100; -const YEAR_DISPLAY_FROM = 1910; -const YEAR_DISPLAY_TO = new Date().getFullYear() + 20 ; function normalizeDay(day, format) { - if (day === undefined) { - return undefined; - } else if (format === "date-time") { - return day.toISOString(); - } else if (format === "date") { - return moment(day).format("YYYY-MM-DD"); - } -} - -const currentYear = new Date().getFullYear(); -const fromMonth = new Date(currentYear, 0); -const toMonth = new Date(currentYear + 10, 11); - -function loadFormatedDate(date, setCurrentDate){ - let formDate = date; - if(!date || date === ""){ - formDate = (setCurrentDate) - ? (moment(new Date()).format("MM/DD/YYYY")) : ""; - } - return formDate; + if (day === undefined) { + return undefined; + } else if (format === "date-time") { + return day.toISOString(); + } else if (format === "date") { + return moment(day).format("YYYY-MM-DD"); + } } - -function YearMonthForm({ date, localeUtils, onChange,yearStartFrom }) { - - console.log(yearStartFrom); - const months = localeUtils.getMonths(); - - const years = []; - const yearStart = (!yearStartFrom ? YEAR_DISPLAY_FROM : yearStartFrom); - // console.log(years); - //console.log(yearStart + " " + YEAR_DISPLAY_TO); - - for (let i = yearStart; i <= YEAR_DISPLAY_TO; i += 1) { - years.push(i); - +function loadFormatedDate(date, setCurrentDate) { + let formDate = date; + if (!date || date === "") { + formDate = setCurrentDate ? moment(new Date()).format("MM/DD/YYYY") : ""; } - - - - const handleChange = function handleChange(e) { - const { year, month } = e.target.form; - - onChange(new Date(year.value, month.value)); - }; - - return ( -
- - -
- ); + return formDate; } export default class ReactDatePicker extends Component { - constructor(props) { - super(props); - this.handleYearMonthChange = this.handleYearMonthChange.bind(this); - this.state = { - month: fromMonth - }; - let { schema: { format = "date-time" }, formData } = props; - this.day = formData - ? format === "date" - ? new Date(formData).toISOString().substr(0, 10) - : new Date(formData) - : undefined; - } - - componentWillReceiveProps({ schema: { format = "date-time" }, formData }) { - if (formData) { - this.day = - format === "date" - ? new Date(formData).toISOString().substr(0, 10) - : new Date(formData); - } - } - - handleKeyDown = evt => { - var eventCode = (evt.which) ? evt.which : event.keyCode - if (eventCode === 13) { - this.refs.datePicker.getInput().blur(); - this.notifyChange(); - } else if (eventCode > 31 && ((eventCode < 48 || eventCode > 57) && (eventCode < 96 || eventCode > 105)) && eventCode != 191){ - evt.preventDefault() - } /* date filed Validation , will accept only number and forward slash */ - }; - - handleClick = evt => { - this.setState({overlay:true}); - }; - - handleBlur = () => { - let { - uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {}, //eslint-disable-line - } = this.props; - - setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? - }; - - notifyChange = () => { - let day = this.day; - let { schema: { format = "date-time" }, onChange, formData } = this.props; - - let event = normalizeDay(day, format); - if (event !== formData && event != undefined) { - onChange(event); - } - }; - - handleDayChange = day => { - this.day = day; - }; - handleYearMonthChange(month) { - this.setState({ month }); - } - render() { + constructor(props) { + super(props); + + let { schema: { format = "date-time" }, formData } = props; + this.day = formData + ? format === "date" + ? new Date(formData).toISOString().substr(0, 10) + : new Date(formData) + : undefined; + } + + componentWillReceiveProps({ schema: { format = "date-time" }, formData }) { + if (formData) { + this.day = + format === "date" + ? new Date(formData).toISOString().substr(0, 10) + : new Date(formData); + } + } - let { - uiSchema = {}, - formData, - idSchema: { $id } = {}, - schema: { format = "date-time" }, - } = this.props; - let { rdp = {}, defaultCurrentDate=false,yearStartFrom = false} = uiSchema; - formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date - - let dayPickerInputProps = Object.assign( - { - onDayChange: this.handleDayChange, - value: formData - ? format === "date" - ? moment(formData).format("MM/DD/YYYY") - : new Date(formData) - : undefined, - hideOnDayClick: true, - ref: "datePicker", - format: "MM/DD/YYYY", - formatDate: formatDate, - parseDate: parseDate, - inputProps: { - className: "form-control", - type: "text", - autoFocus: uiSchema["ui:autofocus"], - }, - }, - rdp - ); - dayPickerInputProps.inputProps.onBlur = this.handleBlur; - - const dayPickerProps = { - month: this.state.month, - fromMonth: fromMonth, - toMonth: toMonth, - captionElement: ({ date, localeUtils }) => ( - - ), - inputProps: { - className: "form-control", - type: "text", - }, - }; - return ( -
- - -
- ); - } + handleKeyDown = evt => { + var eventCode = evt.which ? evt.which : event.keyCode; + if (eventCode === 13) { + this.refs.datePicker.getInput().blur(); + this.notifyChange(); + } else if ( + eventCode > 31 && + ((eventCode < 48 || eventCode > 57) && + (eventCode < 96 || eventCode > 105)) && + eventCode != 191 + ) { + evt.preventDefault(); + } /* date filed Validation , will accept only number and forward slash */ + }; + + handleBlur = () => { + let { + uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {}, //eslint-disable-line + } = this.props; + setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? + }; + + notifyChange = () => { + let day = this.day; + let { schema: { format = "date-time" }, onChange, formData } = this.props; + + let event = normalizeDay(day, format); + if (event !== formData && event != undefined) { + onChange(event); + } + }; + + handleDayChange = day => { + this.day = day; + }; + + render() { + let { + uiSchema = {}, + formData, + idSchema: { $id } = {}, + schema: { format = "date-time" }, + } = this.props; + let { rdp = {}, defaultCurrentDate = false } = uiSchema; + formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date + let dayPickerInputProps = Object.assign( + { + onDayChange: this.handleDayChange, + value: formData + ? format === "date" + ? moment(formData).format("MM/DD/YYYY") + : new Date(formData) + : undefined, + hideOnDayClick: true, + ref: "datePicker", + format: "MM/DD/YYYY", + formatDate: formatDate, + parseDate: parseDate, + inputProps: { + className: "form-control", + type: "text", + autoFocus: uiSchema["ui:autofocus"], + }, + }, + rdp + ); + dayPickerInputProps.inputProps.onBlur = this.handleBlur; + + return ( +
+ + +
+ ); + } } ReactDatePicker.propTypes = { - schema: PropTypes.shape({ - format: PropTypes.oneOf(["date-time", "date"]), - }), + schema: PropTypes.shape({ + format: PropTypes.oneOf(["date-time", "date"]), + }), }; From 2bbc891920429fb91ab46c622e48e5aa4e44fc4d Mon Sep 17 00:00:00 2001 From: Samip Date: Fri, 22 Jun 2018 10:35:16 -0400 Subject: [PATCH 205/297] Code cleanup --- playground/app/react-date-picker/index.js | 4 ++-- src/DraftRte.js | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/playground/app/react-date-picker/index.js b/playground/app/react-date-picker/index.js index c4f2c61..c06943a 100644 --- a/playground/app/react-date-picker/index.js +++ b/playground/app/react-date-picker/index.js @@ -28,8 +28,8 @@ let uiSchema = { datePicker: { classNames: "col-md-12", "ui:field": "rdp", - "yearStartFrom":2000 - }, + yearStartFrom: 2000, + }, }; let formData = { diff --git a/src/DraftRte.js b/src/DraftRte.js index 2da6d00..1c051e9 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -23,13 +23,15 @@ export default class DraftRTE extends Component { const { contentBlocks, entityMap } = blocksFromHtml; const contentState = ContentState.createFromBlockArray( contentBlocks, - entityMap, + entityMap ); let editorState = null; if (autoFocus) { - editorState = EditorState.moveFocusToEnd(EditorState.createWithContent(contentState)); + editorState = EditorState.moveFocusToEnd( + EditorState.createWithContent(contentState) + ); } else { editorState = EditorState.createWithContent(contentState); } From 321357165fc6e701b98b702eec07ff2719b85c4e Mon Sep 17 00:00:00 2001 From: Samip Date: Fri, 22 Jun 2018 10:38:34 -0400 Subject: [PATCH 206/297] 0.9.23 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3dfff90..821303c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.22", + "version": "0.9.23", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8cb475c..99bda31 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.22", + "version": "0.9.23", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 4e5c52d3763827239c7f5eb02bf40a8c20305042 Mon Sep 17 00:00:00 2001 From: rajaramg Date: Thu, 28 Jun 2018 16:52:26 +0000 Subject: [PATCH 207/297] added lodash.debounce package instead of importing entire lodash to reduce bundle size --- package.json | 1 + src/DraftRte.js | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8cb475c..453a06c 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "dependencies": { "draftjs-to-html": "^0.8.4", "html-to-draftjs": "^1.4.0", + "lodash.debounce": "^4.0.8", "react-draft-wysiwyg": "^1.12.13", "selectn": "^1.1.2" }, diff --git a/src/DraftRte.js b/src/DraftRte.js index 1c051e9..0da81d0 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -4,9 +4,10 @@ import { Editor } from "react-draft-wysiwyg"; import draftToHtml from "draftjs-to-html"; import htmlToDraft from "html-to-draftjs"; import PropTypes from "prop-types"; -import _ from "lodash"; import { DefaultLabel } from "./Label"; +const debounce = require('lodash.debounce'); + export default class DraftRTE extends Component { /** * @@ -44,6 +45,7 @@ export default class DraftRTE extends Component { * updates formData by calling parent's onChange function with current html content */ updateFormData = () => { + console.log('updateFormData'); let { onChange } = this.props; let { editorState } = this.state; //eslint-disable-line if (onChange) { @@ -74,7 +76,7 @@ export default class DraftRTE extends Component { handleDebounce = this.props.uiSchema.draftRte ? this.props.uiSchema.draftRte.debounce - ? _.debounce( + ? debounce( this.updateFormData, this.props.uiSchema.draftRte.debounce.interval ) From 3665ae7da367d3d98527ec626439a6d12fd1331a Mon Sep 17 00:00:00 2001 From: rajaramg Date: Thu, 28 Jun 2018 16:59:11 +0000 Subject: [PATCH 208/297] removed console.log --- src/DraftRte.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/DraftRte.js b/src/DraftRte.js index 0da81d0..9534abf 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -45,7 +45,6 @@ export default class DraftRTE extends Component { * updates formData by calling parent's onChange function with current html content */ updateFormData = () => { - console.log('updateFormData'); let { onChange } = this.props; let { editorState } = this.state; //eslint-disable-line if (onChange) { From f7d9c660285c837d0146674ecdf46c75531f3d80 Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 28 Jun 2018 13:04:11 -0400 Subject: [PATCH 209/297] Added async typeahead in playground --- package-lock.json | 53 +++++++++++++++----------- playground/app/App.js | 2 + playground/app/asyncTypeahead/index.js | 22 +++++++++++ 3 files changed, 54 insertions(+), 23 deletions(-) create mode 100644 playground/app/asyncTypeahead/index.js diff --git a/package-lock.json b/package-lock.json index 821303c..d338381 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2343,9 +2343,9 @@ } }, "create-react-class": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz", - "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=", + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "dev": true, "requires": { "fbjs": "0.8.16", @@ -2768,9 +2768,9 @@ } }, "dom-helpers": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.2.1.tgz", - "integrity": "sha1-MgPgf+0he9H0JLAZc1WC/Deyglo=", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", + "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==", "dev": true }, "dom-serializer": { @@ -9521,11 +9521,12 @@ } }, "prop-types-extra": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.0.1.tgz", - "integrity": "sha1-pXvUgQ6C0no/9DF+zBtK0AX3moI=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.0.tgz", + "integrity": "sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==", "dev": true, "requires": { + "react-is": "16.4.1", "warning": "3.0.0" } }, @@ -9731,14 +9732,14 @@ "dev": true, "requires": { "classnames": "2.2.5", - "create-react-class": "15.6.2", + "create-react-class": "15.6.3", "invariant": "2.2.2", "lodash": "4.17.4", "prop-types": "15.6.0", - "react-highlighter": "0.4.1", + "react-highlighter": "0.4.2", "react-input-autosize": "1.2.0", "react-onclickoutside": "5.11.1", - "react-overlays": "0.7.3", + "react-overlays": "0.7.4", "react-prop-types": "0.4.0", "warning": "3.0.0" } @@ -9784,13 +9785,13 @@ } }, "react-highlighter": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/react-highlighter/-/react-highlighter-0.4.1.tgz", - "integrity": "sha1-ZedtIw1J0DJYtA/5x3YqCKd8HR0=", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/react-highlighter/-/react-highlighter-0.4.2.tgz", + "integrity": "sha512-Y8iP0jBcGJ40U1TOB9GjucJ0X/C845ctZ/Y34HcSreaY0lxLwegzm+Od7GE/FC7zD6xyzok7smYicg4x4Y5cww==", "dev": true, "requires": { "blacklist": "1.1.4", - "create-react-class": "15.6.2", + "create-react-class": "15.6.3", "escape-string-regexp": "1.0.5", "prop-types": "15.6.0" } @@ -9801,10 +9802,16 @@ "integrity": "sha1-hyQQcRWfdCEjiXaR2meW7DO1fQU=", "dev": true, "requires": { - "create-react-class": "15.6.2", + "create-react-class": "15.6.3", "prop-types": "15.6.0" } }, + "react-is": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.1.tgz", + "integrity": "sha512-xpb0PpALlFWNw/q13A+1aHeyJyLYCg0/cCHPUA43zYluZuIPHaHL3k8OBsTgQtxqW0FhyDEMvi8fZ/+7+r4OSQ==", + "dev": true + }, "react-jsonschema-form": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/react-jsonschema-form/-/react-jsonschema-form-1.0.0.tgz", @@ -9823,19 +9830,19 @@ "integrity": "sha1-ADFOUlZ89V+rqUyrus0RlhkHBiM=", "dev": true, "requires": { - "create-react-class": "15.6.2" + "create-react-class": "15.6.3" } }, "react-overlays": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.7.3.tgz", - "integrity": "sha512-mIydIqEo9/3uB9h/Pi/KpAwb0ga93LC2ROH/c33uW3heNVTuGG1pjHvINv7m4V+wzCVosTXWg2AtM/Pxw42u+w==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.7.4.tgz", + "integrity": "sha512-7vsooMx3siLAuEfTs8FYeP/lAORWWFXTO8PON3KgX0Htq1Oa+po6ioSjGyO0/GO5CVSMNhpWt6V2opeexHgBuQ==", "dev": true, "requires": { "classnames": "2.2.5", - "dom-helpers": "3.2.1", + "dom-helpers": "3.3.1", "prop-types": "15.6.0", - "prop-types-extra": "1.0.1", + "prop-types-extra": "1.1.0", "warning": "3.0.0" } }, diff --git a/playground/app/App.js b/playground/app/App.js index f3cff4f..56e6c39 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -14,6 +14,7 @@ import label from "./labels"; import simpleTable from "./simpleTable"; import ros from "./ros"; import simpleLabel from "./simpleLabel"; +import aTypeahead from "./asyncTypeahead"; const ALL_CONFS = [ label, @@ -27,6 +28,7 @@ const ALL_CONFS = [ dx, ros, simpleLabel, + aTypeahead, ]; export default function App() { diff --git a/playground/app/asyncTypeahead/index.js b/playground/app/asyncTypeahead/index.js new file mode 100644 index 0000000..78f3d62 --- /dev/null +++ b/playground/app/asyncTypeahead/index.js @@ -0,0 +1,22 @@ +const schema = { + type: "object", + properties: { + user: { + type: "String", + title: "Async Use Case", + }, + }, +}; + +const uiSchema = { + user: { + "ui:field": "asyncTypeahead", + asyncTypeahead: { + url: "https://jsonplaceholder.typicode.com/users", + minLength: 1, + labelKey: "username", + }, + }, +}; + +export default { schema, uiSchema }; From 864e717a1a64b00d828ba242d635a48899212d31 Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 28 Jun 2018 13:04:54 -0400 Subject: [PATCH 210/297] Updating lint fixes --- src/DraftRte.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DraftRte.js b/src/DraftRte.js index 9534abf..db6cece 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -6,7 +6,7 @@ import htmlToDraft from "html-to-draftjs"; import PropTypes from "prop-types"; import { DefaultLabel } from "./Label"; -const debounce = require('lodash.debounce'); +const debounce = require("lodash.debounce"); export default class DraftRTE extends Component { /** From 69f7823fb3e592bb161f13f4d7edb35470f3180d Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 28 Jun 2018 13:10:13 -0400 Subject: [PATCH 211/297] Added lodash debounce --- package-lock.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package-lock.json b/package-lock.json index d338381..9f69c78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7716,6 +7716,11 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", From cdc9b5f2b69bcdc68daa4b0cab4fcaa35c3ddf39 Mon Sep 17 00:00:00 2001 From: rajaramg Date: Sun, 22 Jul 2018 19:43:53 +0000 Subject: [PATCH 212/297] Added form context field --- package-lock.json | 909 ------------------ playground/app/App.js | 4 + .../app/formContextField/SignatureCheckbox.js | 49 + playground/app/formContextField/index.js | 84 ++ src/FormContextField.js | 18 + src/index.js | 2 + 6 files changed, 157 insertions(+), 909 deletions(-) create mode 100644 playground/app/formContextField/SignatureCheckbox.js create mode 100644 playground/app/formContextField/index.js create mode 100644 src/FormContextField.js diff --git a/package-lock.json b/package-lock.json index 9f69c78..a9f7947 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1947,7 +1947,6 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.1.2", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -3893,905 +3892,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.7.0", - "node-pre-gyp": "0.6.36" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6445,7 +5545,6 @@ "anymatch": "1.3.2", "exec-sh": "0.2.1", "fb-watchman": "2.0.0", - "fsevents": "1.1.2", "minimatch": "3.0.4", "minimist": "1.2.0", "walker": "1.0.7", @@ -6982,7 +6081,6 @@ "anymatch": "1.3.2", "exec-sh": "0.2.1", "fb-watchman": "2.0.0", - "fsevents": "1.1.2", "minimatch": "3.0.4", "minimist": "1.2.0", "walker": "1.0.7", @@ -8211,13 +7309,6 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "nan": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", - "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", - "dev": true, - "optional": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", diff --git a/playground/app/App.js b/playground/app/App.js index 56e6c39..245754d 100644 --- a/playground/app/App.js +++ b/playground/app/App.js @@ -15,6 +15,8 @@ import simpleTable from "./simpleTable"; import ros from "./ros"; import simpleLabel from "./simpleLabel"; import aTypeahead from "./asyncTypeahead"; +import formContextField from "./formContextField"; +import SignatureCheckbox from "./formContextField/SignatureCheckbox"; const ALL_CONFS = [ label, @@ -29,6 +31,7 @@ const ALL_CONFS = [ ros, simpleLabel, aTypeahead, + formContextField, ]; export default function App() { @@ -38,6 +41,7 @@ export default function App() { LanguageLegend: props =>

Expected {props.language} characters

, }, allActions: { + SignatureComponent: props => , Button: props => ( Update allergies ), diff --git a/playground/app/formContextField/SignatureCheckbox.js b/playground/app/formContextField/SignatureCheckbox.js new file mode 100644 index 0000000..2cbe3df --- /dev/null +++ b/playground/app/formContextField/SignatureCheckbox.js @@ -0,0 +1,49 @@ +import React, { Component } from "react"; + +export default class SignatureCheckbox extends Component { + constructor(props) { + super(props); + this.updateFormData = this.updateFormData.bind(this); + this.selectionChange = this.selectionChange.bind(this); + this.state = { + value: (typeof this.props.formData === "undefined"? false : this.props.formData.imgSelected) + }; + } + + updateFormData = () => { + let { formData, field } = this.props; + const updatedData = { + imgSelected: this.state.value, + format: this.state.value ? formData.format : "", + base64Image: this.state.value ? formData.base64Image : "", + }; + console.log(field); + console.log(updatedData); + }; + + selectionChange(value) { + this.setState({ value }, () => this.updateFormData()); + } + + render() { + let { formData, schema: { properties }, uiSchema } = this.props; + const disabled = Boolean(uiSchema["ui:disabled"]); + let imgSrc = null; + if (formData !== null && formData !== undefined) { + if (formData.format && formData.base64Image) { + imgSrc = `data:image/${formData.format};base64,${formData.base64Image}`; + } + } + + return ( +
+ this.selectionChange(event.target.checked)} > + {properties.imgSelected.title} + {this.state.value && } +
+ ); + } +} diff --git a/playground/app/formContextField/index.js b/playground/app/formContextField/index.js new file mode 100644 index 0000000..51ffc44 --- /dev/null +++ b/playground/app/formContextField/index.js @@ -0,0 +1,84 @@ +let schema = { + type: "object", + properties: { + doctorSignatureOne: { + type: "object", + title: "RxNT Image", + properties : { + imgSelected : { + type : "boolean", + title : "Dr. Signature 1", + default : false, + }, + format : { + type : "string", + title : "Image Format", + }, + base64Image : { + type : "string", + title : "Image Base64 String", + }, + } + }, + doctorSignatureTwo: { + type: "object", + title: "RxNT Image", + properties : { + imgSelected : { + type : "boolean", + title : "Dr. Signature 2", + default : false, + }, + format : { + type : "string", + title : "Image Format", + }, + base64Image : { + type : "string", + title : "Image Base64 String", + }, + } + }, + }, +}; + +let uiSchema = { + doctorSignatureOne: { + classNames: "col-md-12", + "ui:field": "formContextField", + "actions": [{ + "component": "SignatureComponent", + "props": { + "title": "Signature", + "field": "doctorSignatureTwo" + } + }] + }, + doctorSignatureTwo: { + classNames: "col-md-12", + "ui:field": "formContextField", + "component": "SignatureComponent", + "actions": [{ + "component": "SignatureComponent", + "props": { + "title": "Signature", + "field": "doctorSignatureTwo" + } + }] + }, +}; + +let formData = { + doctorSignatureOne: { + imgSelected: true, + format: "png", + base64Image: "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNTE3OEEyRTk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNTE3OEEyRjk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJDOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJEOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FYrpWAAABrNJREFUeNrkW2lsVFUUvjMWirYUkS5BXApUa2vd6gL+wAWjoP5RiW2EUBajAiqSuPADQ0w1UUQTrcFAUUSJEKriEuMWFKuJIElFSS24YNpQK6WoBbuAktbva880M8O8vnfevJm+CSf5cme599xzvnfffffce17AJFjycnLzUVwDXAgUAucBY4BMIEOqdQIdwJ/Az4J64OvWtoONibQvkACHgyiuBe4CbgLOjVNlE/AZsAmoBSE9viQAjueieBCYC5yVoAvWDKwHqkBEmy8IgON09lHgXmCESY4cBaqBlSCieUgIgOPDUCwBngBOM0MjXdL/CyDiv6QRAOcvR7EBKDL+kD3AbJBQl1AC4DjrLwaeBYYbf8m/ciu+BCJ6PScAzp+K4nXgTuNveQuYAxK6PSMAzo9C8TFwtUkN2Q7cDBIOx02AOP8FUGpSSzgf3GBHQsDGec7unwOTTWrKDiGhS02ATHjvALeb1JZ3gRlWE+MpVq0yMzIekRk/1YWP6o7Ors5vHI8AXH1Odl8BaTbKrwd4j10MTAduS8JqkKvA94BPgN0A56htNm2OMyDDKNhuSwCcT5dIrMBG6S4oLI1qezqKBcBjwGiPHW8HVgCr0W97VL/fobjMpv2vQAnaHgv/MdYVXurAeSNPhggRw56BQatRVgL3A0H5+xDwI8Dw9g/5Hlq+clmdDYwF8iV0zpb/GP2tApZHOx4m2xwQUCC+VVqOABg+AUUDkO6AgHkwaL2DJXORxPVNylUnw+gpXObaLXFRlxHoaw7U8uoXQ99vViNgqUPnKQfsKojhdW7GuxDW5JUtIuni432hH4JhLJ7Dq6qwcZiPZnpNXDJPfI0kQEJbjVM5PiIgW3nhlkQQILH9LGWnV/iIAK0ts8TngREwDchVKrnKRwRobckVnwcIKFcq4ONrkY8IWBT2SHUq5eEE3Khs/CRm6Z1+8V5sqVQ26/M5gHuhSJ79TqUFmIhOj/ppwQ8/Rshqb5yiWXFQFhsaWeU352UU0KaXlc2mBI1+Y3OzjyO/Gm2kSAIKFQ2awfQ+v3oP23gL/K5oUhh0GPiEZG8KxP97FHULgsqwtTUFCDioqHsGCRipaHA8BQjQrAcyg4roj5KVAgSMUtRNDyqVj0wBAlQ2koBuRf3xKUBAvqJuN1eCrYpAiHNAltNjpyFYDfL47oix38wdmDA5AvYr+kjzWRgcLVcqnKfsJwGNyk5u9TEBtyjrNwaVgRClTPKA/Db8aVOZslkDG2nD2vEuOkqGlLmYpHcGJLlJu8LjtvJFgx06Jvnq8xC33gUBeUE4waWjduua5wdVPrr6VS6cr6PvoXv5Ixed3g3mH/fB1V9OW1w07fM5IEouUEZR4bIWWJzsTRJ55r8I3ONSRRFs3hsIU8hkgkkulf0CPAx8qElQcuk4beYp9Epgoks138LOvqSPgfyAzIwMZlnFSobgIegc4H3gH6AkxmKDub9Mjb0DeoYDrZ1dne0eO14AvfPx8RXgAYaycahbBvt+GLgFpIM0md3PjqrMTMxpYKxB6p1v+s/n7bbSuMCqldmZyc+fRh9ND+IsAxrmG3C3qtj0J1uP84hLrnwnwJbjEQRIxzw0XB2jER93C9Bog9TjsRgzLpzuJr0BzHV6e8gwf9XoziqdCv1YE/oSTQBHwfem/3w+5syPxuukLtfdO0zk+WIs+YuPKLQ7ohzyWTIix3joPPMTLg1d/Yg5gIL7ogf32U/4WGGhYDr+34J6bUALPpPA62w6XYMOP9BaCv3HoD/PeJubODN6U/eEq4cKTIurttpBAZ4L+87TmKdtOt0ah8FbPXS+WnyLEKskqUy5FaweM5dA2e6w+pNkZuajhfMD3/zYBfDKb3Y6+cWwgytOL7bh98nQ73BEgHReIvd4Roy/a6Cs3CRYJOnq7zjV8HWcybC33mpLLKZIA84FPRYhcSokUNL2Civnjd0MjoZbUCy0+PtNkDDD5wQsFB8sxWm2+GJZd8eSt4HnZXnZ66Nb4CHYYxuxat4XmI1inbHeczskq77DMrK4z8AgK3+Q/L5EEMBn/PzQos0zAsQgvg5XY3TpNKOTSAD3NsrQX63TBqq9PVHM9NgvfXi/06ZSjfNqAoQEHj9Pled+pw8cpw2co6aKbSoJxDlJnYniKdP/sqSVrrEw7IBL/TnG+rSXEy7fYVoG/S1uffDkzVEYypB1qewJRCdb5rp9yxN6mQDZFmOS2wisCIXo8Yin7w7LiKiQEcFYfhOMnBmnzo1CLIO09Qyt47niJxDQ29trTmY56Qn4X4ABAFR7IoDmVT5NAAAAAElFTkSuQmCC", + }, + doctorSignatureTwo: { + imgSelected: true, + format: "png", + base64Image: "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACk5JREFUeNrUmQlsW/Udx7/P933EdkqcO016xKXt2AohrNBWdKNQWi6BxKVtQKVs0ujEhiYBHamEJlhBZdU0qdI0iWNapQEdA1bGBgqMlgKZmjRx4vTK1eZyEif2e8/2O7zf/9m5tlISmgOe9PJ8PDuf3+///V1/c5lMBt/kw3C5X7Dm/ehlff5A/Trt+i97xcsr09E7uQy406a8hn6D45F7xlt6LvXZzQ3nwS31Ctjvf/zK/cnPjly/rC9YuMEDTsdhoHkc3Z/H8KZ95c9vTUSev5QBuqWEv3fPc3c8a+999xprdzBQZEa6T4QpmkRFtQOhzT7s4CP7/uZY+dilvkO3lPD5NuPeLY8+WWD51t1o/3AE0U4BsfE0hroTCDh1CF3r/lIjlkRCE/C7dnw/VF1dDVEUMdLSiOiRQ+A/PoyCSgssdj0CdgNGx2S0NsYvKqcliYEJ+B1XrwsFAgHk5+dDr9dr77Hr2Ad/Redvn4AvaITbr4fXokeSV9HaKv6fEYseAyxgGfzD27eG/H4/urq60NOTTTQ6nQ5GoxGO67dj+QuvgVt7Jwa70xgcScHIqQgtN11UTobFhF/ndzx93fKikMvlgslk0rzPcRw8Hg8SiYR2ssMYLIPv3p8iSuoYPfpnpB0SAlYdVgZ12HE+su8N5+qB2+JtryxaEDN4utRdWL/1jn8Yi/Dee++hubkZ8Xhce5/neQwMDCASiSCVSkFRFKh6A1w33wdUXQ9+TMGFaAoGJY2gW0WxNPbUomWhCfjA5p11jsor8W9DAV5w1+ClqB6NjY2IxWKa5202G9jKnDhxAul0GqqqQpeXD8fm25Dg9UgLCrqH01DIwJp074rDzlU/XHADJuB9m26ts1eGIA8PQBESkDkdzhaswkfrtuEPkSEcPXoUyWQSXq8XRUVFFLCtmhFsJZxXbUTgrl0QU3pIooSxBBkny3Co0g0LasAk/Mab6xzlqyEN9xM8k0wGeW47qpY58VlUwdvuNXhXV4Djx49r6ZTFA4uN/v5+LT7MZjNs2+6DrDNBSmUgiySvjA4JnbFhwQyYhL/uJoJfBXlkABmBB0cv5rkcWHGFC22DSfBpFUSDY741+MBahqamJsjkXbYS7HQ6nZq8ZMr0rtsfgsIZafWMaMmrOntbvP2PC2LABHzetVvr7KUrIBG8KiQ0z3vdBB90IjwgIk7wGdJ5RpGRkSUcc63ABwigvb1dqwcszTIjWHplUrJuvBUZqw3dK2tGT6vmxxYkiCfhr9lSZy+pnAHvIdmsDLoQ7hcQT8nkeYUMIHhFIgNI11IKDfYKhCUzWHFlwd3X14djx45pmal/LI53vrc78mbFlod3xtsPz6gDTU9wcwJd90zmC+G9GzbVWYuXE/wgMukkdZd6gnegKuhFSx8PXmYNDPkt1wFonUAmuxIeE5AsqtCy0+rVqzX5sGLHVuOtz062DaRR/5OPDrw+74VsAt5z1cY6KxUheXgavJfgC71ouzAOXtJKLv0h4Cw+PczBWziUe2x4veM8oqKKPKoLLJjXr1+fhRfS9Y80vHho3geaCXj3+lqCL4U8OqTBg8F7nKgs8qHtPINXc55XkXN9zvMK3GaC99rREumioiaikbOjlgxgteDv/wl/IfxlGzAJv7amznpFMcEzz6c0eK+HPF/sQ/v5Uco2mZznJ6Q35Xm3RYdyvwMt7Qxe0N7to9Dcd0bEpp4s/J/2Pk7wj8/43wcPHsTmyzFgAt61ZkOdJT+Y83wWnsmmssSP9p4RJCjbcMzz6pTnM2wVNHg9yvx2tIY7wSeEye9ORvvR0XPmYAfwe/6V507M+0zM4EPmCwd6KrbfYPEXQI5Fp+CZbErzEeli8AqpRkf+Vic9z1InmGysepTm2xEOn5sBn6Lg53vPHcQs4L+SAQdGN91Raz2792TJ7SGLf1kWXkppEnG7PVhelo+O7igSKeWi2YZ53mU1oCRA9aD1LIQEPwU/GoVwoWvW8HM2gMF3Sb69zYU7Q2ZvPslmOAtPJd/tcRP8MnR0DoFPyll4LpdtpgWsy2Ygz7vQHj4NPj4Fn44NQxjonRP8nArZBHxTwfaQyeuDMjYMNclrgeh02lBeXoBT5/qRiAvZ6jqtSGmFijKTk/J8KWsjWk8jERvL3kdniuJnrvA/+/D0nFbgCgZ/wndjyOzyaPAZKZ2NB4IvZfCnuiGQbDjq45HRa5VWcz/zPD12WI0oKfCgveUUhOmej8coaAfm7Pk5SegIH3rmuFodshIRa8wmg9lpR2lFIc60kZZZtqGRkGUYTkuZXFb3DN5mQhFV4khLZAa8lBhHcmToK8PP1gD9Nkf4R0JRCPuaaD61OWF0uuAkzZdUFOEsg6cswhnN4Bi8njyu0+eSjgo7gy/04UxLB4TxxBQ8H0cqNnxZ8LONgVucfg/qa7ow9GADnv52M4T+XuqCJXS2n6Fxb1zTMYsHNSlATeXOtAibiaMBxU/wEfCjsUnNS/GxeYGfrQEPeANugFpem1HCbjKk95ef4E5vA6Kd52g6krTswk5VJPCkqJ1Wow6Fxfk4e5LgR2KT92ieHx+dF/jZSChPb9Df5aI+BSIFrUOvadtrSuL5bR1wmST85uNysMDWqi1TDXnYRrNtkME3hyFO07ycSjID5g1+Ngbc5c5z0jJRRlG0fTxtgqKxiJ5z+NXGCPQZGc8eXQGzw6nVAxtNXMVVJegOR2bCU6WWBH5e4WdjwA/yqMWFRH2wnssWJJIBpKn54cmaMKiBxO+aVsGVH0CwqgxdrTPhFUq5frn/cB/c8wr/ZQZUmkyGa+0WukUkA5y5toDBK9Puopd+XdOEM1ErPjUUoid8CuK0bKNQjHxH1xb+RC6vn2/4LzPgAa/LSoByVjbIFSd52vSm5toEevmR5RG8834QJot1GryMDYZIW4Eh9tRCwF/KACaYPXl2I3VY5H1TTj6s+DIDmD1aLLDn2etWSxceLOjAq4PV1JTqyVYFG4wdbWXG4frXUt993fvQnov+ozQF9kIYcIvTZoTJoEISFRj1uqx01NxMkoMGGxGlDBQaWNic/oD/JF7qW6FV4KtNpzT4v4i1hzDZTi/eCtR5mfZlRdtMMpIh2baS6T+jgasEnpSmPqDQipSpvXi1+BUcGKrNwgs1Cwr/RQZYKRveZCQvCvEsYSoOmMWsaqZDs+c8DS1xOrWZlya9Mu7Coc+lqvfpXJpfKW886N/141oR968XUGA3aLtpsqIV4slZXJBVjNMKsCs9f5leZgP3kdquX+Tyk7xovzkY/gf+UbPZvD9adDfe6nwDO8v6scySzTo86T5BXDxJiDz/Br30cg5aXMofCg3T4U0m0/61a9eira0Nn8YLER+P4Z41IotTJv23c55+k84xfE0OQw7eodPp9vt8Pm1XmG2wDg4O4kCnfffOarGRbonQOYSv4aH9yMe2FsmIervdvodtZ7N9SVVVd/9zV/TFr7LNuCQS0posnocgCHvIqFnBf61WYFosOAg+cTkbvYtuwDf50OEbfvxXgAEAFpyqPqutRYcAAAAASUVORK5CYII=", +}, +}; + +export default { schema, uiSchema, formData }; diff --git a/src/FormContextField.js b/src/FormContextField.js new file mode 100644 index 0000000..42ecc0b --- /dev/null +++ b/src/FormContextField.js @@ -0,0 +1,18 @@ +import React, { Component } from "react"; + +export default class FormContextField extends Component { + constructor(props) { + super(props); + } + + render() { + let { formContext, uiSchema: { actions } } = this.props; + const Component = formContext["allActions"][actions[0].component]; + + return ( +
+ +
+ ); + } +} diff --git a/src/index.js b/src/index.js index 44c99ac..d1fce8b 100644 --- a/src/index.js +++ b/src/index.js @@ -7,6 +7,7 @@ import RTEField from "./RTEField"; import rdp from "./ReactDatePicker"; import SimpleLabel from "./SimpleLabel"; import draftRte from "./DraftRte"; +import formContextField from "./FormContextField"; export default { table, @@ -19,4 +20,5 @@ export default { rdp, simpleLabel: SimpleLabel, draftRte, + formContextField, }; From 70598a56fac09d35689f8146442963542dddc11d Mon Sep 17 00:00:00 2001 From: rajaramg Date: Sun, 22 Jul 2018 19:59:28 +0000 Subject: [PATCH 213/297] upgraded to 0.9.24 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ce548c9..49fe994 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.23", + "version": "0.9.24", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From 84ce5e7b0599dc0fcbe51b831075bc1a2000b3dd Mon Sep 17 00:00:00 2001 From: Samip Date: Mon, 6 Aug 2018 16:36:09 -0400 Subject: [PATCH 214/297] SimpleLabel parses html string --- package-lock.json | 7809 ++++++++++++++++++--------- package.json | 11 +- playground/app/simpleLabel/index.js | 6 +- src/SimpleLabel.js | 3 +- 4 files changed, 5244 insertions(+), 2585 deletions(-) diff --git a/package-lock.json b/package-lock.json index a9f7947..f3ac76b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.23", + "version": "0.9.24", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,9 +10,9 @@ "integrity": "sha512-sW77BFwJ48YvQp3Gzz5xtAUiXuYOL2aMJKDwiaY3OcvdqBFurtYfOpSa4QrNyDxmOGRFSYzUpabU2m9QrlWE7w==", "dev": true, "requires": { - "chalk": "2.3.0", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -21,7 +21,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -30,9 +30,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "supports-color": { @@ -41,11 +41,49 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, "@babel/helper-function-name": { "version": "7.0.0-beta.36", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.36.tgz", @@ -66,6 +104,88 @@ "@babel/types": "7.0.0-beta.36" } }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", + "dev": true + }, "@babel/template": { "version": "7.0.0-beta.36", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.36.tgz", @@ -75,7 +195,7 @@ "@babel/code-frame": "7.0.0-beta.36", "@babel/types": "7.0.0-beta.36", "babylon": "7.0.0-beta.36", - "lodash": "4.17.4" + "lodash": "^4.2.0" }, "dependencies": { "babylon": { @@ -96,10 +216,10 @@ "@babel/helper-function-name": "7.0.0-beta.36", "@babel/types": "7.0.0-beta.36", "babylon": "7.0.0-beta.36", - "debug": "3.1.0", - "globals": "11.1.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "debug": "^3.0.1", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" }, "dependencies": { "babylon": { @@ -131,9 +251,9 @@ "integrity": "sha512-PyAORDO9um9tfnrddXgmWN9e6Sq9qxraQIt5ynqBOSXKA5qvK1kUr+Q3nSzKFdzorsiK+oqcUnAFvEoKxv9D+Q==", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { @@ -147,8 +267,7 @@ "@types/node": { "version": "6.0.90", "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.90.tgz", - "integrity": "sha512-tXoGRVdi7wZX7P1VWoV9Wfk0uYDOAHdEYXAttuWgSrN76Q32wQlSrMX0Rgyv3RTEaQY2ZLQrzYHVM2e8rfo8sA==", - "dev": true + "integrity": "sha512-tXoGRVdi7wZX7P1VWoV9Wfk0uYDOAHdEYXAttuWgSrN76Q32wQlSrMX0Rgyv3RTEaQY2ZLQrzYHVM2e8rfo8sA==" }, "abab": { "version": "1.0.4", @@ -162,7 +281,7 @@ "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "dev": true, "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -178,7 +297,7 @@ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -195,7 +314,7 @@ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.4" }, "dependencies": { "acorn": { @@ -212,7 +331,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -229,10 +348,10 @@ "integrity": "sha1-Pa+ai2ciEpn9ro2C0RftjmyAJEs=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" } }, "ajv-keywords": { @@ -247,9 +366,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "alphanum-sort": { @@ -300,8 +419,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "app-root-path": { @@ -310,22 +429,13 @@ "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", "dev": true }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -334,14 +444,18 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-equal": { "version": "1.0.0", @@ -367,8 +481,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -377,7 +491,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -404,10 +518,13 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } }, "asn1.js": { "version": "4.9.1", @@ -415,9 +532,9 @@ "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -435,6 +552,11 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -447,7 +569,7 @@ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "async-each": { @@ -456,6 +578,12 @@ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -463,10 +591,9 @@ "dev": true }, "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" }, "autoprefixer": { "version": "6.7.7", @@ -474,12 +601,12 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000749", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "browserslist": { @@ -488,8 +615,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000749", - "electron-to-chromium": "1.3.27" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } @@ -501,9 +628,9 @@ "dev": true }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "babel-cli": { @@ -512,21 +639,21 @@ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.11.0", - "convert-source-map": "1.5.0", - "fs-readdir-recursive": "1.0.0", - "glob": "7.1.2", - "lodash": "4.17.4", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -535,36 +662,44 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + } } }, "babel-eslint": { @@ -577,8 +712,8 @@ "@babel/traverse": "7.0.0-beta.36", "@babel/types": "7.0.0-beta.36", "babylon": "7.0.0-beta.36", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0" + "eslint-scope": "~3.7.1", + "eslint-visitor-keys": "^1.0.0" }, "dependencies": { "babylon": { @@ -590,19 +725,19 @@ } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-bindify-decorators": { @@ -611,9 +746,9 @@ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -622,9 +757,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -633,9 +768,9 @@ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -644,10 +779,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -656,10 +791,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -668,9 +803,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-class": { @@ -679,10 +814,10 @@ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", "dev": true, "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -691,11 +826,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -704,8 +839,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -714,8 +849,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -724,8 +859,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -734,9 +869,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -745,11 +880,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -758,12 +893,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -772,8 +907,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-jest": { @@ -782,8 +917,8 @@ "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", "dev": true, "requires": { - "babel-plugin-istanbul": "4.1.5", - "babel-preset-jest": "21.2.0" + "babel-plugin-istanbul": "^4.0.0", + "babel-preset-jest": "^21.2.0" }, "dependencies": { "babel-plugin-jest-hoist": { @@ -798,8 +933,8 @@ "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "21.2.0", - "babel-plugin-syntax-object-rest-spread": "6.13.0" + "babel-plugin-jest-hoist": "^21.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" } } } @@ -810,9 +945,9 @@ "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { @@ -821,7 +956,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-add-module-exports": { @@ -836,18 +971,308 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-istanbul": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", - "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { - "find-up": "2.1.0", - "istanbul-lib-instrument": "1.9.1", - "test-exclude": "4.1.1" + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "test-exclude": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + } } }, "babel-plugin-syntax-async-functions": { @@ -916,9 +1341,9 @@ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-async-to-generator": { @@ -927,9 +1352,9 @@ "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", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-class-properties": { @@ -938,10 +1363,10 @@ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-decorators": { @@ -950,11 +1375,11 @@ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", "dev": true, "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -963,7 +1388,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -972,7 +1397,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -981,11 +1406,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -994,15 +1419,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -1011,8 +1436,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -1021,7 +1446,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -1030,8 +1455,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -1040,7 +1465,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -1049,9 +1474,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -1060,7 +1485,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -1069,21 +1494,21 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { - "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=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -1092,9 +1517,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -1103,9 +1528,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -1114,8 +1539,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -1124,12 +1549,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -1138,8 +1563,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -1148,7 +1573,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1157,9 +1582,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1168,7 +1593,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1177,7 +1602,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1186,9 +1611,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -1197,9 +1622,9 @@ "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", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -1208,8 +1633,8 @@ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "dev": true, "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-object-rest-spread": { @@ -1218,8 +1643,8 @@ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -1228,7 +1653,7 @@ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -1237,9 +1662,9 @@ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "dev": true, "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -1248,8 +1673,8 @@ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -1258,8 +1683,8 @@ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -1268,7 +1693,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -1277,8 +1702,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -1287,9 +1712,9 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "core-js": { @@ -1307,41 +1732,41 @@ } }, "babel-preset-env": { - "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", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.5.1", - "invariant": "2.2.2", - "semver": "5.4.1" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -1350,30 +1775,30 @@ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -1382,7 +1807,7 @@ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "dev": true, "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -1391,12 +1816,12 @@ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-preset-stage-2": { @@ -1405,10 +1830,10 @@ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" } }, "babel-preset-stage-3": { @@ -1417,11 +1842,11 @@ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", "dev": true, "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -1430,13 +1855,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "core-js": { @@ -1453,8 +1878,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "core-js": { @@ -1471,11 +1896,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1484,15 +1909,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -1501,10 +1926,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1519,18 +1944,72 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", "dev": true }, - "base64url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", - "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=", - "dev": true - }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -1538,13 +2017,13 @@ "dev": true }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -1578,15 +2057,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "~1.6.15" } }, "bonjour": { @@ -1595,12 +2074,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.1.1", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" }, "dependencies": { "array-flatten": { @@ -1617,15 +2096,6 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "dev": true, - "requires": { - "hoek": "4.2.0" - } - }, "bootstrap": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", @@ -1638,7 +2108,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1648,9 +2118,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brackets2dots": { @@ -1664,8 +2134,14 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-resolve": { - "version": "1.11.2", + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.2", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", "dev": true, @@ -1687,12 +2163,12 @@ "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -1701,9 +2177,9 @@ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "dev": true, "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1712,9 +2188,9 @@ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1723,8 +2199,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1733,13 +2209,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -1748,17 +2224,25 @@ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "dev": true, "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "browserslist": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.5.1.tgz", - "integrity": "sha512-jAvM2ku7YDJ+leAq3bFH1DE0Ylw+F+EQDq4GkqZfgPEqpWYw9ofQH85uKSB9r3Tv7XDbfqVtE+sdvKJW7IlPJA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000749", - "electron-to-chromium": "1.3.27" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "dependencies": { + "electron-to-chromium": { + "version": "1.3.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.55.tgz", + "integrity": "sha1-8VDhCyC3fZ1Br8yjEu/gw7Gn/c4=", + "dev": true + } } }, "bser": { @@ -1767,7 +2251,7 @@ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", "dev": true, "requires": { - "node-int64": "0.4.0" + "node-int64": "^0.4.0" } }, "buffer": { @@ -1776,9 +2260,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-indexof": { @@ -1811,13 +2295,36 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -1838,8 +2345,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { @@ -1856,10 +2363,10 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000749", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -1868,8 +2375,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000749", - "electron-to-chromium": "1.3.27" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } @@ -1881,9 +2388,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30000749", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000749.tgz", - "integrity": "sha1-L/OChlrq2MyjXaz7qwT1jv+kwBw=", + "version": "1.0.30000874", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz", + "integrity": "sha512-29nr1EPiHwrJTAHHsEmTt2h+55L8j2GNFdAcYPlRy2NX6iFz7ZZiepVI7kP/QqlnHLq3KvfWpbmGa0d063U09w==", "dev": true }, "caseless": { @@ -1898,8 +2405,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -1908,11 +2415,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cheerio": { @@ -1921,22 +2428,22 @@ "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "entities": "1.1.1", - "htmlparser2": "3.9.2", - "lodash.assignin": "4.2.0", - "lodash.bind": "4.2.1", - "lodash.defaults": "4.2.0", - "lodash.filter": "4.6.0", - "lodash.flatten": "4.4.0", - "lodash.foreach": "4.5.0", - "lodash.map": "4.6.0", - "lodash.merge": "4.6.0", - "lodash.pick": "4.4.0", - "lodash.reduce": "4.6.0", - "lodash.reject": "4.6.0", - "lodash.some": "4.6.0" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" } }, "chokidar": { @@ -1945,14 +2452,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -1967,8 +2475,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1983,7 +2491,7 @@ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" } }, "class-autobind": { @@ -1992,6 +2500,32 @@ "integrity": "sha1-NFFsSRZ8+NP2Od3Bhrz6Imiv/zQ=", "dev": true }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "classnames": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", @@ -2003,7 +2537,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -2019,7 +2553,7 @@ "dev": true, "requires": { "slice-ansi": "0.0.4", - "string-width": "1.0.2" + "string-width": "^1.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -2028,7 +2562,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "slice-ansi": { @@ -2043,9 +2577,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -2062,8 +2596,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -2093,7 +2627,7 @@ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "code-point-at": { @@ -2102,15 +2636,24 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.2", - "color-convert": "1.9.0", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { @@ -2119,7 +2662,7 @@ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -2134,7 +2677,7 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -2143,9 +2686,9 @@ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.1" + "has": "^1.0.1" } }, "colors": { @@ -2155,12 +2698,12 @@ "dev": true }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2175,13 +2718,24 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compare-versions": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz", + "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "compressible": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", "dev": true, "requires": { - "mime-db": "1.30.0" + "mime-db": ">= 1.30.0 < 2" } }, "compression": { @@ -2190,13 +2744,13 @@ "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "bytes": "3.0.0", - "compressible": "2.0.12", + "compressible": "~2.0.11", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.1", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "concat-map": { @@ -2211,9 +2765,9 @@ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "connect-history-api-fallback": { @@ -2228,7 +2782,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -2273,6 +2827,11 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", @@ -2290,11 +2849,11 @@ "integrity": "sha512-ZppXR9y5PraUOrf/DzHJY6gzNUhXYE3b9D43xEXs4QYZ7/Oe0Gy0CS+IPKWFfvQFXB3RG9QduaQUFehzSpGAFw==", "dev": true, "requires": { - "js-yaml": "3.10.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.5", - "minimist": "1.2.0", - "request": "2.83.0" + "js-yaml": "^3.6.1", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.5", + "minimist": "^1.2.0", + "request": "^2.79.0" }, "dependencies": { "minimist": { @@ -2311,8 +2870,8 @@ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -2321,10 +2880,10 @@ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -2333,12 +2892,12 @@ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "create-react-class": { @@ -2347,9 +2906,9 @@ "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "dev": true, "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "cross-env": { @@ -2358,8 +2917,8 @@ "integrity": "sha512-R+0paw9UZQc7odHjIxElqyYotgyMlhcUMTfRxiv4I22grgvS5WOSSfCpyfAZUDhP/c9ShSRv+Hzfxs6fY4JA7g==", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "is-windows": "1.0.1" + "cross-spawn": "^5.1.0", + "is-windows": "^1.0.0" } }, "cross-spawn": { @@ -2368,29 +2927,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "dev": true, - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.2.0" - } - } + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-browserify": { @@ -2399,16 +2938,16 @@ "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", "dev": true, "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0" } }, "css-color-names": { @@ -2423,20 +2962,20 @@ "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" + "babel-code-frame": "^6.11.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": ">=2.6.1 <4", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.0.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.0.0", + "postcss-modules-local-by-default": "^1.0.1", + "postcss-modules-scope": "^1.0.0", + "postcss-modules-values": "^1.1.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" } }, "css-select": { @@ -2445,10 +2984,10 @@ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "css-selector-tokenizer": { @@ -2457,9 +2996,9 @@ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" }, "dependencies": { "regexpu-core": { @@ -2468,9 +3007,9 @@ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } } } @@ -2493,38 +3032,38 @@ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" } }, "csso": { @@ -2533,8 +3072,8 @@ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" + "clap": "^1.0.9", + "source-map": "^0.5.3" } }, "cssom": { @@ -2549,7 +3088,7 @@ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true, "requires": { - "cssom": "0.3.2" + "cssom": "0.3.x" } }, "currently-unhandled": { @@ -2558,7 +3097,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "curry2": { @@ -2566,7 +3105,7 @@ "resolved": "https://registry.npmjs.org/curry2/-/curry2-1.0.3.tgz", "integrity": "sha1-OBkdVfEGC/6kfKCACThbuHj2YS8=", "requires": { - "fast-bind": "1.0.0" + "fast-bind": "^1.0.0" } }, "d": { @@ -2575,7 +3114,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.35" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -2584,7 +3123,46 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", + "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", + "dev": true, + "requires": { + "abab": "^1.0.4", + "whatwg-mimetype": "^2.0.0", + "whatwg-url": "^6.4.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } } }, "date-fns": { @@ -2613,6 +3191,11 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -2631,23 +3214,61 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "2.0.0" - } - }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } } }, "defined": { @@ -2662,13 +3283,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -2689,8 +3310,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -2705,7 +3326,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -2726,9 +3347,9 @@ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dns-equal": { @@ -2743,8 +3364,8 @@ "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", "dev": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -2753,7 +3374,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -2762,8 +3383,8 @@ "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "dom-helpers": { @@ -2778,8 +3399,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -2809,10 +3430,13 @@ "dev": true }, "domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.0.tgz", - "integrity": "sha512-WpwuBlZ2lQRFa4H/4w49deb9rJLot9KmqrKKjMc9qBl7CID+DdC2swoa34ccRl+anL2B6bLp6TjFdIdnzekMBQ==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } }, "domhandler": { "version": "2.4.1", @@ -2820,7 +3444,7 @@ "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -2829,8 +3453,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dotsplit.js": { @@ -2844,10 +3468,10 @@ "integrity": "sha1-XzwwJa+fSUxi8AqQZgBszcGzyUM=", "dev": true, "requires": { - "enzyme": "2.9.1", - "fbjs": "0.8.16", - "immutable": "3.7.6", - "object-assign": "4.1.1" + "enzyme": "^2.9.1", + "fbjs": "^0.8.15", + "immutable": "~3.7.4", + "object-assign": "^4.1.0" }, "dependencies": { "immutable": { @@ -2864,7 +3488,7 @@ "integrity": "sha1-HL4reOH+10/CnHzcv9dUBGjsogk=", "dev": true, "requires": { - "draft-js-utils": "1.2.0" + "draft-js-utils": "^1.2.0" } }, "draft-js-export-markdown": { @@ -2873,7 +3497,7 @@ "integrity": "sha1-xCPWc4nhxw3dE+lWr+gv0bcv7qU=", "dev": true, "requires": { - "draft-js-utils": "1.2.0" + "draft-js-utils": "^1.2.0" } }, "draft-js-import-element": { @@ -2882,8 +3506,8 @@ "integrity": "sha512-T/eCDkaU8wrTCH6c+/2BE7Vx/11GABRNU/UBiHM4D903LNFar8UfjElehpiKVf+F4rxi8dfhvTgaWrpWDfX4MA==", "dev": true, "requires": { - "draft-js-utils": "1.2.0", - "synthetic-dom": "1.2.0" + "draft-js-utils": "^1.2.0", + "synthetic-dom": "^1.2.0" } }, "draft-js-import-html": { @@ -2892,7 +3516,7 @@ "integrity": "sha512-FP1y9kdmOVDvOxoI4ny+H0g4CVoTQwdW++Zjf+qMsnz07NsYOCLcQ34j7TiwuPfArFAcOjBOc41Mn+qOa1G14w==", "dev": true, "requires": { - "draft-js-import-element": "1.2.1" + "draft-js-import-element": "^1.2.1" } }, "draft-js-import-markdown": { @@ -2901,8 +3525,8 @@ "integrity": "sha512-hn2+LJ/QdmuM2gc44uqYWjMqRv5Pt6bZFHULi8hGAR7WVWaVk4gaXHM4fE8H4iVE+QFUV6yNITrm4D/fyPkaGQ==", "dev": true, "requires": { - "draft-js-import-element": "1.2.1", - "synthetic-dom": "1.2.0" + "draft-js-import-element": "^1.2.1", + "synthetic-dom": "^1.2.0" } }, "draft-js-utils": { @@ -2922,13 +3546,14 @@ "integrity": "sha512-KYjABSbGpJrwrwmxVj5UhfV37MF/p0QRxKIyL+/+QOaJ8J9z1FBKxkblThbpR0nJi9lxPQWGg+gh+v0dAsSCCg==" }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -2955,13 +3580,13 @@ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emojis-list": { @@ -2981,7 +3606,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "enhanced-resolve": { @@ -2990,10 +3615,10 @@ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" } }, "entities": { @@ -3008,16 +3633,16 @@ "integrity": "sha1-B9XOaRJBJA+4F78sSxjW5TAkDfY=", "dev": true, "requires": { - "cheerio": "0.22.0", - "function.prototype.name": "1.0.3", - "is-subset": "0.1.1", - "lodash": "4.17.4", - "object-is": "1.0.1", - "object.assign": "4.0.4", - "object.entries": "1.0.4", - "object.values": "1.0.4", - "prop-types": "15.6.0", - "uuid": "3.1.0" + "cheerio": "^0.22.0", + "function.prototype.name": "^1.0.0", + "is-subset": "^0.1.1", + "lodash": "^4.17.4", + "object-is": "^1.0.1", + "object.assign": "^4.0.4", + "object.entries": "^1.0.4", + "object.values": "^1.0.4", + "prop-types": "^15.5.10", + "uuid": "^3.0.1" } }, "errno": { @@ -3026,7 +3651,7 @@ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "dev": true, "requires": { - "prr": "0.0.0" + "prr": "~0.0.0" } }, "error-ex": { @@ -3035,7 +3660,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -3044,11 +3669,11 @@ "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", "dev": true, "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -3057,9 +3682,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -3068,8 +3693,8 @@ "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "es6-iterator": "~2.0.1", + "es6-symbol": "~3.1.1" } }, "es6-iterator": { @@ -3078,9 +3703,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -3089,12 +3714,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -3103,11 +3728,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -3116,8 +3741,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -3126,10 +3751,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -3150,11 +3775,11 @@ "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.5.7" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.5.6" }, "dependencies": { "esprima": { @@ -3171,10 +3796,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -3183,43 +3808,43 @@ "integrity": "sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos=", "dev": true, "requires": { - "ajv": "5.2.4", - "babel-code-frame": "6.26.0", - "chalk": "2.2.0", - "concat-stream": "1.6.0", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.0.0", - "eslint-scope": "3.7.1", - "espree": "3.5.1", - "esquery": "1.0.0", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.6", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.0.0", - "js-yaml": "3.10.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.4.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "ajv": "^5.2.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.0.1", + "doctrine": "^2.0.0", + "eslint-scope": "^3.7.1", + "espree": "^3.5.1", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^9.17.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "^4.0.1", + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -3234,7 +3859,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -3243,9 +3868,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "debug": { @@ -3263,7 +3888,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -3272,7 +3897,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -3289,10 +3914,10 @@ "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==", "dev": true, "requires": { - "doctrine": "2.0.0", - "has": "1.0.1", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.0" + "doctrine": "^2.0.0", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.0", + "prop-types": "^15.5.10" } }, "eslint-plugin-standard": { @@ -3307,8 +3932,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -3323,8 +3948,8 @@ "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", "dev": true, "requires": { - "acorn": "5.1.2", - "acorn-jsx": "3.0.1" + "acorn": "^5.1.1", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -3339,7 +3964,7 @@ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -3348,8 +3973,8 @@ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0", + "object-assign": "^4.0.1" } }, "estraverse": { @@ -3376,8 +4001,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -3398,7 +4023,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": "1.0.0" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -3407,8 +4032,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "exec-sh": { @@ -3417,7 +4042,7 @@ "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", "dev": true, "requires": { - "merge": "1.2.0" + "merge": "^1.1.3" } }, "execa": { @@ -3426,13 +4051,13 @@ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exenv": { @@ -3453,7 +4078,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -3462,7 +4087,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "expect": { @@ -3471,12 +4096,12 @@ "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "jest-diff": "21.2.1", - "jest-get-type": "21.2.0", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-regex-util": "21.2.0" + "ansi-styles": "^3.2.0", + "jest-diff": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0" }, "dependencies": { "ansi-regex": { @@ -3491,7 +4116,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -3500,9 +4125,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "jest-diff": { @@ -3511,10 +4136,10 @@ "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", "dev": true, "requires": { - "chalk": "2.3.0", - "diff": "3.4.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-matcher-utils": { @@ -3523,9 +4148,9 @@ "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-message-util": { @@ -3534,9 +4159,9 @@ "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", "dev": true, "requires": { - "chalk": "2.3.0", - "micromatch": "2.3.11", - "slash": "1.0.0" + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" } }, "jest-regex-util": { @@ -3551,8 +4176,8 @@ "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" } }, "supports-color": { @@ -3561,7 +4186,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -3572,53 +4197,72 @@ "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.0", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "~2.0.2", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.1", "serve-static": "1.13.1", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.3.1", + "type-is": "~1.6.15", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", "dev": true, "requires": { - "iconv-lite": "0.4.19", - "jschardet": "1.5.1", - "tmp": "0.0.33" + "iconv-lite": "^0.4.17", + "jschardet": "^1.4.2", + "tmp": "^0.0.33" } }, "extglob": { @@ -3627,7 +4271,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extract-text-webpack-plugin": { @@ -3636,10 +4280,10 @@ "integrity": "sha512-zv0/Cg2mU8uMzeQQ3oyfJvZU4Iv/GbQYUIr/HU+8pZetT/0W3xj6XAbxoG4gsp8SbnYcFd4BOsCAZPl9NvplPw==", "dev": true, "requires": { - "async": "2.5.0", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.0.1" + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" } }, "extsprintf": { @@ -3677,7 +4321,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fb-watchman": { @@ -3686,7 +4330,7 @@ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", "dev": true, "requires": { - "bser": "2.0.0" + "bser": "^2.0.0" } }, "fbjs": { @@ -3694,13 +4338,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" } }, "figures": { @@ -3709,7 +4353,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -3718,8 +4362,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -3728,27 +4372,81 @@ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true, + "requires": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", + "dev": true, + "requires": { + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" + } + }, "fileset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "dev": true, "requires": { - "glob": "7.1.2", - "minimatch": "3.0.4" + "glob": "^7.0.3", + "minimatch": "^3.0.3" } }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + } } }, "finalhandler": { @@ -3758,12 +4456,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "find-cache-dir": { @@ -3772,9 +4470,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.1.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-parent-dir": { @@ -3789,7 +4487,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -3798,10 +4496,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatten": { @@ -3813,8 +4511,7 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "0.1.5", @@ -3822,7 +4519,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -3838,14 +4535,14 @@ "dev": true }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, "formatio": { @@ -3854,7 +4551,7 @@ "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", "dev": true, "requires": { - "samsam": "1.3.0" + "samsam": "1.x" } }, "forwarded": { @@ -3863,6 +4560,14 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -3870,14 +4575,14 @@ "dev": true }, "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-readdir-recursive": { @@ -3892,122 +4597,1023 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", - "integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "is-callable": "1.1.3" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-own-enumerable-property-symbols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz", - "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "getpass": { - "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" - } - }, - "gh-pages": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-1.0.0.tgz", - "integrity": "sha1-Skb0wlQ596K35oNVBNSknpSfBMo=", + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", "dev": true, + "optional": true, "requires": { - "async": "2.1.4", - "base64url": "2.0.0", - "commander": "2.9.0", - "fs-extra": "3.0.1", - "globby": "6.1.0", - "graceful-fs": "4.1.11", - "rimraf": "2.6.2" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.36" }, "dependencies": { - "async": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", - "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "abbrev": { + "version": "1.1.0", + "bundled": true, "dev": true, - "requires": { - "lodash": "4.17.4" - } + "optional": true }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "ajv": { + "version": "4.11.8", + "bundled": true, "dev": true, + "optional": true, "requires": { - "graceful-readlink": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, "dev": true, + "optional": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } - } - } - }, + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "request": "^2.81.0", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", + "integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.0", + "is-callable": "^1.1.3" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-own-enumerable-property-symbols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz", + "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "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" + } + }, + "gh-pages": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-1.2.0.tgz", + "integrity": "sha512-cGLYAvxtlQ1iTwAS4g7FreZPXoE/g62Fsxln2mmR19mgs4zZI+XJ+wVVUhBFCF/0+Nmvbq+abyTWue1m1BSnmg==", + "dev": true, + "requires": { + "async": "2.6.1", + "commander": "2.15.1", + "filenamify-url": "^1.0.0", + "fs-extra": "^5.0.0", + "globby": "^6.1.0", + "graceful-fs": "4.1.11", + "rimraf": "^2.6.2" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -4016,8 +5622,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -4026,7 +5632,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "global": { @@ -4035,8 +5641,8 @@ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "dev": true, "requires": { - "min-document": "2.19.0", - "process": "0.5.2" + "min-document": "^2.19.0", + "process": "~0.5.1" } }, "globals": { @@ -4051,12 +5657,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "graceful-fs": { @@ -4065,12 +5671,6 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -4089,10 +5689,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -4107,7 +5707,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -4124,8 +5724,8 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.2.4", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -4134,7 +5734,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -4143,7 +5743,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -4152,13 +5752,67 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" } }, "hash.js": { @@ -4167,20 +5821,8 @@ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "dev": true, - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.0.2" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hmac-drbg": { @@ -4189,25 +5831,19 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", - "dev": true - }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -4222,10 +5858,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "wbuf": "1.7.2" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "html": { @@ -4234,7 +5870,7 @@ "integrity": "sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E=", "dev": true, "requires": { - "concat-stream": "1.6.0" + "concat-stream": "^1.4.7" } }, "html-comment-regex": { @@ -4249,7 +5885,7 @@ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { - "whatwg-encoding": "1.0.2" + "whatwg-encoding": "^1.0.1" } }, "html-entities": { @@ -4269,12 +5905,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.5.1", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-deceiver": { @@ -4292,7 +5928,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" }, "dependencies": { "setprototypeof": { @@ -4315,8 +5951,8 @@ "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true, "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" } }, "http-proxy-middleware": { @@ -4325,10 +5961,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "dev": true, "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.4", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -4343,7 +5979,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -4354,9 +5990,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -4365,15 +6001,25 @@ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", "dev": true }, + "humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "dev": true, + "requires": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + } + }, "husky": { "version": "0.14.3", "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", "dev": true, "requires": { - "is-ci": "1.0.10", - "normalize-path": "1.0.0", - "strip-indent": "2.0.0" + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" }, "dependencies": { "normalize-path": { @@ -4401,7 +6047,7 @@ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { - "postcss": "6.0.13" + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -4410,7 +6056,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4419,9 +6065,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "postcss": { @@ -4430,9 +6076,9 @@ "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", "dev": true, "requires": { - "chalk": "2.2.0", - "source-map": "0.6.1", - "supports-color": "4.5.0" + "chalk": "^2.1.0", + "source-map": "^0.6.1", + "supports-color": "^4.4.0" } }, "source-map": { @@ -4447,7 +6093,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -4476,8 +6122,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -4492,7 +6138,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -4513,8 +6159,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4529,20 +6175,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.2.0", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.0.5", - "figures": "2.0.0", - "lodash": "4.17.4", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -4557,7 +6203,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4566,9 +6212,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "strip-ansi": { @@ -4577,7 +6223,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -4586,7 +6232,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -4597,7 +6243,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "dev": true, "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "interpret": { @@ -4612,7 +6258,7 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4639,6 +6285,14 @@ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4651,14 +6305,13 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" }, "is-builtin-module": { "version": "1.0.0", @@ -4666,7 +6319,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -4681,7 +6334,15 @@ "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", "dev": true, "requires": { - "ci-info": "1.1.1" + "ci-info": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4690,6 +6351,23 @@ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -4708,14 +6386,13 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "1.0.0", @@ -4729,7 +6406,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -4744,7 +6421,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -4753,7 +6430,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -4768,7 +6445,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -4791,7 +6468,7 @@ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "dev": true, "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -4800,7 +6477,7 @@ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -4809,6 +6486,21 @@ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -4833,7 +6525,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-regexp": { @@ -4848,7 +6540,7 @@ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", "dev": true, "requires": { - "tryit": "1.0.3" + "tryit": "^1.0.1" } }, "is-stream": { @@ -4868,7 +6560,7 @@ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -4904,8 +6596,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", @@ -4927,8 +6618,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { @@ -4937,81 +6628,32 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "istanbul-api": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", - "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", - "dev": true, - "requires": { - "async": "2.5.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "once": "1.4.0" - } - }, "istanbul-lib-coverage": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", "dev": true }, - "istanbul-lib-hook": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", - "dev": true, - "requires": { - "append-transform": "0.4.0" - } - }, "istanbul-lib-instrument": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", - "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", - "dev": true, - "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" - } - }, - "istanbul-lib-report": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", - "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" }, "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } } } }, @@ -5021,11 +6663,11 @@ "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -5039,24 +6681,85 @@ } } }, - "istanbul-reports": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", - "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", - "dev": true, - "requires": { - "handlebars": "4.0.11" - } - }, "jest": { "version": "21.2.1", "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", "dev": true, "requires": { - "jest-cli": "21.2.1" + "jest-cli": "^21.2.1" }, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + } + }, "acorn": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", @@ -5075,7 +6778,16 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" + } + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "^2.0.0" } }, "callsites": { @@ -5096,9 +6808,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "cliui": { @@ -5107,9 +6819,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -5124,44 +6836,121 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" } + } + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "istanbul-lib-hook": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz", + "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==", + "dev": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", + "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "has-flag": "^1.0.0" } } } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "istanbul-reports": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.0.tgz", + "integrity": "sha512-HeZG0WHretI9FXBni5wZ9DOgNziqDCEwetxnme5k1Vv5e81uTqcsy3fMH99gXGDGKr1ea87TyGseDMa2h4HEUA==", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "handlebars": "^4.0.11" } }, "jest-changed-files": { @@ -5170,7 +6959,7 @@ "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", "dev": true, "requires": { - "throat": "4.1.0" + "throat": "^4.0.0" } }, "jest-cli": { @@ -5179,35 +6968,101 @@ "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "is-ci": "1.0.10", - "istanbul-api": "1.2.1", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-source-maps": "1.2.2", - "jest-changed-files": "21.2.0", - "jest-config": "21.2.1", - "jest-environment-jsdom": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-message-util": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve-dependencies": "21.2.0", - "jest-runner": "21.2.1", - "jest-runtime": "21.2.1", - "jest-snapshot": "21.2.1", - "jest-util": "21.2.1", - "micromatch": "2.3.11", - "node-notifier": "5.1.2", - "pify": "3.0.0", - "slash": "1.0.0", - "string-length": "2.0.0", - "strip-ansi": "4.0.0", - "which": "1.3.0", - "worker-farm": "1.5.0", - "yargs": "9.0.1" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.1", + "istanbul-lib-coverage": "^1.0.1", + "istanbul-lib-instrument": "^1.4.2", + "istanbul-lib-source-maps": "^1.1.0", + "jest-changed-files": "^21.2.0", + "jest-config": "^21.2.1", + "jest-environment-jsdom": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve-dependencies": "^21.2.0", + "jest-runner": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-snapshot": "^21.2.1", + "jest-util": "^21.2.1", + "micromatch": "^2.3.11", + "node-notifier": "^5.0.2", + "pify": "^3.0.0", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "worker-farm": "^1.3.1", + "yargs": "^9.0.0" + }, + "dependencies": { + "istanbul-api": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.6.tgz", + "integrity": "sha512-luJDnB1uJ5Qsg/WwusGfNXayQ4598yDgW5S0nUS85T576m1LVJzSqLrCDULkT6sTQXVKHa54093gNuCKumMCjQ==", + "dev": true, + "requires": { + "async": "^2.1.4", + "compare-versions": "^3.1.0", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.2.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.4", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "dev": true, + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", + "dev": true + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + } + } + } } }, "jest-config": { @@ -5216,17 +7071,17 @@ "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", "dev": true, "requires": { - "chalk": "2.3.0", - "glob": "7.1.2", - "jest-environment-jsdom": "21.2.1", - "jest-environment-node": "21.2.1", - "jest-get-type": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "jest-validate": "21.2.1", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^21.2.1", + "jest-environment-node": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "jest-validate": "^21.2.1", + "pretty-format": "^21.2.1" } }, "jest-diff": { @@ -5235,10 +7090,10 @@ "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", "dev": true, "requires": { - "chalk": "2.3.0", - "diff": "3.4.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-docblock": { @@ -5253,9 +7108,9 @@ "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", "dev": true, "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1", - "jsdom": "9.12.0" + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1", + "jsdom": "^9.12.0" } }, "jest-environment-node": { @@ -5264,8 +7119,8 @@ "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", "dev": true, "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1" + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1" } }, "jest-haste-map": { @@ -5274,12 +7129,12 @@ "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", "dev": true, "requires": { - "fb-watchman": "2.0.0", - "graceful-fs": "4.1.11", - "jest-docblock": "21.2.0", - "micromatch": "2.3.11", - "sane": "2.2.0", - "worker-farm": "1.5.0" + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^21.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0", + "worker-farm": "^1.3.1" } }, "jest-jasmine2": { @@ -5288,14 +7143,14 @@ "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", "dev": true, "requires": { - "chalk": "2.3.0", - "expect": "21.2.1", - "graceful-fs": "4.1.11", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-snapshot": "21.2.1", - "p-cancelable": "0.3.0" + "chalk": "^2.0.1", + "expect": "^21.2.1", + "graceful-fs": "^4.1.11", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-snapshot": "^21.2.1", + "p-cancelable": "^0.3.0" } }, "jest-matcher-utils": { @@ -5304,9 +7159,9 @@ "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-message-util": { @@ -5315,9 +7170,9 @@ "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", "dev": true, "requires": { - "chalk": "2.3.0", - "micromatch": "2.3.11", - "slash": "1.0.0" + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" } }, "jest-mock": { @@ -5338,9 +7193,9 @@ "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", "dev": true, "requires": { - "browser-resolve": "1.11.2", - "chalk": "2.3.0", - "is-builtin-module": "1.0.0" + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1", + "is-builtin-module": "^1.0.0" } }, "jest-resolve-dependencies": { @@ -5349,7 +7204,7 @@ "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", "dev": true, "requires": { - "jest-regex-util": "21.2.0" + "jest-regex-util": "^21.2.0" } }, "jest-runtime": { @@ -5358,23 +7213,23 @@ "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-jest": "21.2.0", - "babel-plugin-istanbul": "4.1.5", - "chalk": "2.3.0", - "convert-source-map": "1.5.0", - "graceful-fs": "4.1.11", - "jest-config": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "json-stable-stringify": "1.0.1", - "micromatch": "2.3.11", - "slash": "1.0.0", + "babel-core": "^6.0.0", + "babel-jest": "^21.2.0", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", "strip-bom": "3.0.0", - "write-file-atomic": "2.3.0", - "yargs": "9.0.1" + "write-file-atomic": "^2.1.0", + "yargs": "^9.0.0" } }, "jest-snapshot": { @@ -5383,12 +7238,12 @@ "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^21.2.1" } }, "jest-util": { @@ -5397,13 +7252,13 @@ "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", "dev": true, "requires": { - "callsites": "2.0.0", - "chalk": "2.3.0", - "graceful-fs": "4.1.11", - "jest-message-util": "21.2.1", - "jest-mock": "21.2.0", - "jest-validate": "21.2.1", - "mkdirp": "0.5.1" + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "jest-message-util": "^21.2.1", + "jest-mock": "^21.2.0", + "jest-validate": "^21.2.1", + "mkdirp": "^0.5.1" } }, "jest-validate": { @@ -5412,10 +7267,10 @@ "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" } }, "jsdom": { @@ -5424,25 +7279,25 @@ "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", "dev": true, "requires": { - "abab": "1.0.4", - "acorn": "4.0.13", - "acorn-globals": "3.1.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.2", - "nwmatcher": "1.4.3", - "parse5": "1.5.1", - "request": "2.83.0", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.2", - "whatwg-url": "4.8.0", - "xml-name-validator": "2.0.1" + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" } }, "load-json-file": { @@ -5451,10 +7306,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -5477,9 +7332,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "path-type": { @@ -5488,7 +7343,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -5511,8 +7366,8 @@ "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" } }, "read-pkg": { @@ -5521,9 +7376,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -5532,8 +7387,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "sane": { @@ -5542,23 +7397,30 @@ "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", "dev": true, "requires": { - "anymatch": "1.3.2", - "exec-sh": "0.2.1", - "fb-watchman": "2.0.0", - "minimatch": "3.0.4", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.18.0" + "anymatch": "^1.3.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.1.1", + "minimatch": "^3.0.2", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" } }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "dev": true, "requires": { - "astral-regex": "1.0.0", - "strip-ansi": "4.0.0" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -5567,7 +7429,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -5582,7 +7444,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "throat": { @@ -5591,15 +7453,11 @@ "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "dev": true }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", - "dev": true, - "requires": { - "exec-sh": "0.2.1", - "minimist": "1.2.0" - } + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true }, "which-module": { "version": "2.0.0", @@ -5613,19 +7471,19 @@ "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" } }, "yargs-parser": { @@ -5634,7 +7492,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -5651,16 +7509,16 @@ "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", "dev": true, "requires": { - "jest-config": "21.2.1", - "jest-docblock": "21.2.0", - "jest-haste-map": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-message-util": "21.2.1", - "jest-runtime": "21.2.1", - "jest-util": "21.2.1", - "pify": "3.0.0", - "throat": "4.1.0", - "worker-farm": "1.5.0" + "jest-config": "^21.2.1", + "jest-docblock": "^21.2.0", + "jest-haste-map": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-util": "^21.2.1", + "pify": "^3.0.0", + "throat": "^4.0.0", + "worker-farm": "^1.3.1" }, "dependencies": { "acorn": { @@ -5681,7 +7539,44 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "callsites": { @@ -5702,9 +7597,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "cliui": { @@ -5713,9 +7608,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -5724,9 +7619,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -5737,13 +7632,176 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-fullwidth-code-point": { @@ -5752,26 +7810,49 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, "jest-config": { "version": "21.2.1", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", "dev": true, "requires": { - "chalk": "2.3.0", - "glob": "7.1.2", - "jest-environment-jsdom": "21.2.1", - "jest-environment-node": "21.2.1", - "jest-get-type": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "jest-validate": "21.2.1", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^21.2.1", + "jest-environment-node": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "jest-validate": "^21.2.1", + "pretty-format": "^21.2.1" } }, "jest-diff": { @@ -5780,10 +7861,10 @@ "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", "dev": true, "requires": { - "chalk": "2.3.0", - "diff": "3.4.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-docblock": { @@ -5798,9 +7879,9 @@ "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", "dev": true, "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1", - "jsdom": "9.12.0" + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1", + "jsdom": "^9.12.0" } }, "jest-environment-node": { @@ -5809,8 +7890,8 @@ "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", "dev": true, "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1" + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1" } }, "jest-haste-map": { @@ -5819,12 +7900,12 @@ "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", "dev": true, "requires": { - "fb-watchman": "2.0.0", - "graceful-fs": "4.1.11", - "jest-docblock": "21.2.0", - "micromatch": "2.3.11", - "sane": "2.2.0", - "worker-farm": "1.5.0" + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^21.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0", + "worker-farm": "^1.3.1" } }, "jest-jasmine2": { @@ -5833,14 +7914,14 @@ "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", "dev": true, "requires": { - "chalk": "2.3.0", - "expect": "21.2.1", - "graceful-fs": "4.1.11", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-snapshot": "21.2.1", - "p-cancelable": "0.3.0" + "chalk": "^2.0.1", + "expect": "^21.2.1", + "graceful-fs": "^4.1.11", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-snapshot": "^21.2.1", + "p-cancelable": "^0.3.0" } }, "jest-matcher-utils": { @@ -5849,9 +7930,9 @@ "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-message-util": { @@ -5860,9 +7941,9 @@ "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", "dev": true, "requires": { - "chalk": "2.3.0", - "micromatch": "2.3.11", - "slash": "1.0.0" + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" } }, "jest-mock": { @@ -5883,9 +7964,9 @@ "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", "dev": true, "requires": { - "browser-resolve": "1.11.2", - "chalk": "2.3.0", - "is-builtin-module": "1.0.0" + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1", + "is-builtin-module": "^1.0.0" } }, "jest-runtime": { @@ -5894,23 +7975,23 @@ "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-jest": "21.2.0", - "babel-plugin-istanbul": "4.1.5", - "chalk": "2.3.0", - "convert-source-map": "1.5.0", - "graceful-fs": "4.1.11", - "jest-config": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "json-stable-stringify": "1.0.1", - "micromatch": "2.3.11", - "slash": "1.0.0", + "babel-core": "^6.0.0", + "babel-jest": "^21.2.0", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", "strip-bom": "3.0.0", - "write-file-atomic": "2.3.0", - "yargs": "9.0.1" + "write-file-atomic": "^2.1.0", + "yargs": "^9.0.0" } }, "jest-snapshot": { @@ -5919,12 +8000,12 @@ "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^21.2.1" } }, "jest-util": { @@ -5933,13 +8014,13 @@ "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", "dev": true, "requires": { - "callsites": "2.0.0", - "chalk": "2.3.0", - "graceful-fs": "4.1.11", - "jest-message-util": "21.2.1", - "jest-mock": "21.2.0", - "jest-validate": "21.2.1", - "mkdirp": "0.5.1" + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "jest-message-util": "^21.2.1", + "jest-mock": "^21.2.0", + "jest-validate": "^21.2.1", + "mkdirp": "^0.5.1" } }, "jest-validate": { @@ -5948,10 +8029,10 @@ "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" } }, "jsdom": { @@ -5960,37 +8041,42 @@ "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", "dev": true, "requires": { - "abab": "1.0.4", - "acorn": "4.0.13", - "acorn-globals": "3.1.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.2", - "nwmatcher": "1.4.3", - "parse5": "1.5.1", - "request": "2.83.0", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.2", - "whatwg-url": "4.8.0", - "xml-name-validator": "2.0.1" + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" } }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -6007,15 +8093,20 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "path-type": { @@ -6024,7 +8115,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -6047,8 +8138,8 @@ "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" } }, "read-pkg": { @@ -6057,9 +8148,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -6068,8 +8159,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "sane": { @@ -6078,13 +8169,14 @@ "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", "dev": true, "requires": { - "anymatch": "1.3.2", - "exec-sh": "0.2.1", - "fb-watchman": "2.0.0", - "minimatch": "3.0.4", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.18.0" + "anymatch": "^1.3.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.1.1", + "minimatch": "^3.0.2", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" } }, "strip-bom": { @@ -6099,7 +8191,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "throat": { @@ -6108,16 +8200,6 @@ "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "dev": true }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", - "dev": true, - "requires": { - "exec-sh": "0.2.1", - "minimist": "1.2.0" - } - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -6130,19 +8212,19 @@ "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" } }, "yargs-parser": { @@ -6151,7 +8233,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -6173,8 +8255,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -6191,78 +8273,153 @@ "dev": true }, "jsdom": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.3.0.tgz", - "integrity": "sha512-aPZTDl4MplzQhx5bLztk6nzjbEslmO3Q3+z0WpCMutL1XJDhZIRzir6R1Y8S84LgeT/7jhQvgtUMkY6oPwvlUw==", - "dev": true, - "requires": { - "abab": "1.0.4", - "acorn": "5.1.2", - "acorn-globals": "4.0.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "domexception": "1.0.0", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.2", - "nwmatcher": "1.4.3", - "parse5": "3.0.2", - "pn": "1.0.0", - "request": "2.83.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.2", - "whatwg-url": "6.3.0", - "xml-name-validator": "2.0.1" + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" }, "dependencies": { + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", + "dev": true + }, + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, "acorn-globals": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.0.0.tgz", - "integrity": "sha512-0ih/qJVrAalX7TjjAnQdz8u+I1QOnLvLq+9zkyqcczObOii07ukuUSd5mTgVDukhqikAs+gqTm6cMd8VFwTrwA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "dev": true, "requires": { - "acorn": "5.1.2" + "acorn": "^5.0.0" } }, - "parse5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz", - "integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=", + "cssstyle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.0.0.tgz", + "integrity": "sha512-Bpuh47j2mRMY60X90mXaJAEtJwxvA2roZzbgwAXYhMbmwmakdRr4Cq9L5SkleKJNLOKqHIa2YWyOXDX3VgggSQ==", "dev": true, "requires": { - "@types/node": "6.0.90" + "cssom": "0.3.x" } }, - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, "tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "requires": { - "punycode": "2.1.0" + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" } }, "whatwg-url": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.3.0.tgz", - "integrity": "sha512-rM+hE5iYKGPAOu05mIdJR47pYSR2vDzfrTEFRc/S8D3L60yW8BuXmUJ7Kog7x/DrokFN7JNaHKadpzjouKRRAw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", "dev": true, "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true } } }, @@ -6296,7 +8453,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -6318,12 +8475,12 @@ "dev": true }, "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -6350,7 +8507,7 @@ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "dev": true, "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -6363,9 +8520,8 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -6380,7 +8536,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -6389,6 +8545,12 @@ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -6401,8 +8563,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "linkify-it": { @@ -6410,7 +8572,7 @@ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz", "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=", "requires": { - "uc.micro": "1.0.5" + "uc.micro": "^1.0.1" } }, "lint-staged": { @@ -6419,26 +8581,26 @@ "integrity": "sha512-ZUftK94S4vedpQG1LlA2tc2AuQXXBwc+1lB+j8SEfG5+p2dqu3Ug8iYQ8jdap+uLkhDw4OaJXqE+CZ/L+vfv+Q==", "dev": true, "requires": { - "app-root-path": "2.0.1", - "chalk": "2.3.0", - "commander": "2.11.0", - "cosmiconfig": "3.1.0", - "debug": "3.1.0", - "dedent": "0.7.0", - "execa": "0.8.0", - "find-parent-dir": "0.3.0", - "is-glob": "4.0.0", - "jest-validate": "21.2.1", - "listr": "0.13.0", - "lodash": "4.17.4", - "log-symbols": "2.1.0", - "minimatch": "3.0.4", - "npm-which": "3.0.1", - "p-map": "1.2.0", - "path-is-inside": "1.0.2", - "pify": "3.0.0", + "app-root-path": "^2.0.0", + "chalk": "^2.1.0", + "commander": "^2.11.0", + "cosmiconfig": "^3.1.0", + "debug": "^3.1.0", + "dedent": "^0.7.0", + "execa": "^0.8.0", + "find-parent-dir": "^0.3.0", + "is-glob": "^4.0.0", + "jest-validate": "^21.1.0", + "listr": "^0.13.0", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "minimatch": "^3.0.0", + "npm-which": "^3.0.1", + "p-map": "^1.1.1", + "path-is-inside": "^1.0.2", + "pify": "^3.0.0", "staged-git-files": "0.0.4", - "stringify-object": "3.2.1" + "stringify-object": "^3.2.0" }, "dependencies": { "ansi-regex": { @@ -6453,7 +8615,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -6462,9 +8624,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "cosmiconfig": { @@ -6473,10 +8635,10 @@ "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.10.0", - "parse-json": "3.0.0", - "require-from-string": "2.0.1" + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^3.0.0", + "require-from-string": "^2.0.1" } }, "debug": { @@ -6494,8 +8656,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "is-extglob": { @@ -6510,7 +8672,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "jest-validate": { @@ -6519,10 +8681,10 @@ "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", "dev": true, "requires": { - "chalk": "2.3.0", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" } }, "listr": { @@ -6531,23 +8693,23 @@ "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-observable": "0.2.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.4.0", - "listr-verbose-renderer": "0.4.0", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.0", - "stream-to-observable": "0.2.0", - "strip-ansi": "3.0.1" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -6562,11 +8724,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "log-symbols": { @@ -6575,7 +8737,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "supports-color": { @@ -6592,14 +8754,14 @@ "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "elegant-spinner": "1.0.1", - "figures": "1.7.0", - "indent-string": "3.2.0", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "strip-ansi": "3.0.1" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -6614,11 +8776,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "indent-string": { @@ -6633,7 +8795,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "supports-color": { @@ -6650,7 +8812,7 @@ "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.3.1" } }, "pify": { @@ -6665,8 +8827,8 @@ "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" } }, "require-from-string": { @@ -6681,7 +8843,7 @@ "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", "dev": true, "requires": { - "any-observable": "0.2.0" + "any-observable": "^0.2.0" } }, "supports-color": { @@ -6690,7 +8852,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -6707,10 +8869,10 @@ "integrity": "sha1-RNwBuww0oDxXIVTU0Izemx3FYg8=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "date-fns": "1.29.0", - "figures": "1.7.0" + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" }, "dependencies": { "cli-cursor": { @@ -6719,7 +8881,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "figures": { @@ -6728,8 +8890,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "onetime": { @@ -6744,8 +8906,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } } } @@ -6756,11 +8918,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "loader-runner": { @@ -6775,9 +8937,9 @@ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "locate-path": { @@ -6786,14 +8948,14 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "lodash.assignin": { @@ -6921,7 +9083,7 @@ "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==", "dev": true, "requires": { - "chalk": "2.2.0" + "chalk": "^2.0.1" }, "dependencies": { "ansi-styles": { @@ -6930,7 +9092,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -6939,9 +9101,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "supports-color": { @@ -6950,7 +9112,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -6961,8 +9123,8 @@ "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "cli-cursor": "1.0.2" + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" }, "dependencies": { "ansi-escapes": { @@ -6977,7 +9139,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "onetime": { @@ -6992,8 +9154,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } } } @@ -7015,7 +9177,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -7024,8 +9186,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -7034,14 +9196,14 @@ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.9.tgz", + "integrity": "sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w==", "dev": true }, "make-dir": { @@ -7050,7 +9212,7 @@ "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -7067,29 +9229,48 @@ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true, "requires": { - "tmpl": "1.0.4" + "tmpl": "1.0.x" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" }, "dependencies": { "hash-base": { @@ -7098,8 +9279,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } } } @@ -7116,7 +9297,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "memory-fs": { @@ -7125,8 +9306,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -7135,16 +9316,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "minimist": { @@ -7179,19 +9360,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "miller-rabin": { @@ -7200,8 +9381,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -7222,7 +9403,7 @@ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true, "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "mimic-fn": { @@ -7237,7 +9418,7 @@ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "dev": true, "requires": { - "dom-walk": "0.1.1" + "dom-walk": "^0.1.0" } }, "minimalistic-assert": { @@ -7258,7 +9439,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7267,6 +9448,25 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -7293,8 +9493,8 @@ "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", "dev": true, "requires": { - "dns-packet": "1.2.2", - "thunky": "0.1.0" + "dns-packet": "^1.0.1", + "thunky": "^0.1.0" } }, "multicast-dns-service-types": { @@ -7309,6 +9509,58 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -7327,11 +9579,11 @@ "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==", "dev": true, "requires": { - "formatio": "1.2.0", - "just-extend": "1.1.26", - "lolex": "1.6.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "formatio": "^1.2.0", + "just-extend": "^1.1.26", + "lolex": "^1.6.0", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "isarray": { @@ -7362,8 +9614,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -7384,28 +9636,28 @@ "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", "dev": true, "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", - "domain-browser": "1.1.7", - "events": "1.1.1", + "assert": "^1.1.1", + "browserify-zlib": "^0.1.4", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "os-browserify": "^0.2.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "0.10.31", - "timers-browserify": "2.0.4", + "process": "^0.11.0", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.0.5", + "stream-browserify": "^2.0.1", + "stream-http": "^2.3.1", + "string_decoder": "^0.10.25", + "timers-browserify": "^2.0.2", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" }, "dependencies": { @@ -7429,10 +9681,10 @@ "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", "dev": true, "requires": { - "growly": "1.3.0", - "semver": "5.4.1", - "shellwords": "0.1.1", - "which": "1.3.0" + "growly": "^1.3.0", + "semver": "^5.3.0", + "shellwords": "^0.1.0", + "which": "^1.2.12" } }, "normalize-package-data": { @@ -7441,10 +9693,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -7453,7 +9705,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -7468,10 +9720,10 @@ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" } }, "npm-path": { @@ -7480,7 +9732,7 @@ "integrity": "sha1-Fc/04ciaONp39W9gVbJPl137K74=", "dev": true, "requires": { - "which": "1.3.0" + "which": "^1.2.10" } }, "npm-run-path": { @@ -7489,7 +9741,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npm-which": { @@ -7498,9 +9750,9 @@ "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", "dev": true, "requires": { - "commander": "2.11.0", - "npm-path": "2.0.3", - "which": "1.3.0" + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" } }, "nth-check": { @@ -7509,7 +9761,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -7530,6 +9782,12 @@ "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", "dev": true }, + "nwsapi": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.8.tgz", + "integrity": "sha512-7RZ+qbFGiVc6v14Y8DSZjPN1wZPOaMbiiP4tzf5eNuyOITAeOIA3cMhjuKUypVIqBgCSg1KaSyAv8Ocq/0ZJ1A==", + "dev": true + }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -7541,6 +9799,26 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "object-is": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", @@ -7553,15 +9831,30 @@ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "object.assign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", "dev": true, "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "object-keys": "1.0.11" + "define-properties": "^1.1.2", + "function-bind": "^1.1.0", + "object-keys": "^1.0.10" } }, "object.entries": { @@ -7570,10 +9863,10 @@ "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0", - "function-bind": "1.1.1", - "has": "1.0.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "object.omit": { @@ -7582,8 +9875,25 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "object.values": { @@ -7592,10 +9902,10 @@ "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0", - "function-bind": "1.1.1", - "has": "1.0.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "obuf": { @@ -7625,7 +9935,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -7634,7 +9944,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -7643,7 +9953,7 @@ "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { @@ -7652,8 +9962,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "wordwrap": { @@ -7670,12 +9980,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "ora": { @@ -7684,10 +9994,10 @@ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-spinners": "0.1.2", - "object-assign": "4.1.1" + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" }, "dependencies": { "cli-cursor": { @@ -7696,7 +10006,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "onetime": { @@ -7711,8 +10021,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } } } @@ -7723,7 +10033,7 @@ "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", "dev": true, "requires": { - "url-parse": "1.0.5" + "url-parse": "1.0.x" }, "dependencies": { "url-parse": { @@ -7732,8 +10042,8 @@ "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", "dev": true, "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" + "querystringify": "0.0.x", + "requires-port": "1.0.x" } } } @@ -7756,7 +10066,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -7771,9 +10081,9 @@ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-cancelable": { @@ -7800,7 +10110,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -7821,11 +10131,11 @@ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "dev": true, "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parse-glob": { @@ -7834,10 +10144,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -7846,7 +10156,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse5": { @@ -7861,6 +10171,11 @@ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", @@ -7909,9 +10224,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pbkdf2": { @@ -7920,11 +10235,11 @@ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "dev": true, "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -7951,7 +10266,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -7960,7 +10275,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pluralize": { @@ -7970,9 +10285,9 @@ "dev": true }, "pn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.0.0.tgz", - "integrity": "sha1-HPWjCw2AbNGPiPxBprXUrWFbO6k=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", "dev": true }, "portfinder": { @@ -7981,9 +10296,9 @@ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "dev": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -7994,16 +10309,21 @@ } } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.3.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "dependencies": { "has-flag": { @@ -8018,7 +10338,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8029,9 +10349,9 @@ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" } }, "postcss-colormin": { @@ -8040,9 +10360,9 @@ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" } }, "postcss-convert-values": { @@ -8051,8 +10371,8 @@ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" } }, "postcss-discard-comments": { @@ -8061,7 +10381,7 @@ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" } }, "postcss-discard-duplicates": { @@ -8070,7 +10390,7 @@ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" } }, "postcss-discard-empty": { @@ -8079,7 +10399,7 @@ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" } }, "postcss-discard-overridden": { @@ -8088,7 +10408,7 @@ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" } }, "postcss-discard-unused": { @@ -8097,8 +10417,8 @@ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" } }, "postcss-filter-plugins": { @@ -8107,8 +10427,8 @@ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "postcss": "^5.0.4", + "uniqid": "^4.0.0" } }, "postcss-merge-idents": { @@ -8117,9 +10437,9 @@ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" } }, "postcss-merge-longhand": { @@ -8128,7 +10448,7 @@ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" } }, "postcss-merge-rules": { @@ -8137,11 +10457,11 @@ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" }, "dependencies": { "browserslist": { @@ -8150,8 +10470,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000749", - "electron-to-chromium": "1.3.27" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } @@ -8168,9 +10488,9 @@ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" } }, "postcss-minify-gradients": { @@ -8179,8 +10499,8 @@ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" } }, "postcss-minify-params": { @@ -8189,10 +10509,10 @@ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" } }, "postcss-minify-selectors": { @@ -8201,10 +10521,10 @@ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" } }, "postcss-modules-extract-imports": { @@ -8213,7 +10533,7 @@ "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", "dev": true, "requires": { - "postcss": "6.0.13" + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -8222,7 +10542,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -8231,9 +10551,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "postcss": { @@ -8242,9 +10562,9 @@ "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", "dev": true, "requires": { - "chalk": "2.2.0", - "source-map": "0.6.1", - "supports-color": "4.5.0" + "chalk": "^2.1.0", + "source-map": "^0.6.1", + "supports-color": "^4.4.0" } }, "source-map": { @@ -8259,7 +10579,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -8270,8 +10590,8 @@ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.13" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -8280,7 +10600,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -8289,9 +10609,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "postcss": { @@ -8300,9 +10620,9 @@ "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", "dev": true, "requires": { - "chalk": "2.2.0", - "source-map": "0.6.1", - "supports-color": "4.5.0" + "chalk": "^2.1.0", + "source-map": "^0.6.1", + "supports-color": "^4.4.0" } }, "source-map": { @@ -8317,7 +10637,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -8328,8 +10648,8 @@ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.13" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -8338,7 +10658,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -8347,9 +10667,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "postcss": { @@ -8358,9 +10678,9 @@ "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", "dev": true, "requires": { - "chalk": "2.2.0", - "source-map": "0.6.1", - "supports-color": "4.5.0" + "chalk": "^2.1.0", + "source-map": "^0.6.1", + "supports-color": "^4.4.0" } }, "source-map": { @@ -8375,7 +10695,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -8386,8 +10706,8 @@ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.13" + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -8396,7 +10716,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -8405,9 +10725,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "postcss": { @@ -8416,9 +10736,9 @@ "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", "dev": true, "requires": { - "chalk": "2.2.0", - "source-map": "0.6.1", - "supports-color": "4.5.0" + "chalk": "^2.1.0", + "source-map": "^0.6.1", + "supports-color": "^4.4.0" } }, "source-map": { @@ -8433,7 +10753,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -8444,7 +10764,7 @@ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" } }, "postcss-normalize-url": { @@ -8453,10 +10773,10 @@ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" } }, "postcss-ordered-values": { @@ -8465,8 +10785,8 @@ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" } }, "postcss-reduce-idents": { @@ -8475,8 +10795,8 @@ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" } }, "postcss-reduce-initial": { @@ -8485,7 +10805,7 @@ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" } }, "postcss-reduce-transforms": { @@ -8494,9 +10814,9 @@ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" } }, "postcss-selector-parser": { @@ -8505,9 +10825,9 @@ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -8516,10 +10836,10 @@ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" } }, "postcss-unique-selectors": { @@ -8528,9 +10848,9 @@ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" } }, "postcss-value-parser": { @@ -8545,9 +10865,9 @@ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" } }, "prelude-ls": { @@ -8603,7 +10923,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "prop-types": { @@ -8611,9 +10931,9 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.16", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "prop-types-extra": { @@ -8622,8 +10942,8 @@ "integrity": "sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==", "dev": true, "requires": { - "react-is": "16.4.1", - "warning": "3.0.0" + "react-is": "^16.3.2", + "warning": "^3.0.0" } }, "proxy-addr": { @@ -8632,7 +10952,7 @@ "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.5.2" } }, @@ -8648,17 +10968,23 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, "public-encrypt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { @@ -8685,8 +11011,8 @@ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -8707,54 +11033,13 @@ "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", "dev": true }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, "randombytes": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -8781,22 +11066,27 @@ "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", "dev": true, "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.0" + "fbjs": "^0.8.16", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" } }, + "react-attr-converter": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/react-attr-converter/-/react-attr-converter-0.3.1.tgz", + "integrity": "sha512-dSxo2Mn6Zx4HajeCeQNLefwEO4kNtV/0E682R1+ZTyFRPqxDa5zYb5qM/ocqw9Bxr/kFQO0IUiqdV7wdHw+Cdg==" + }, "react-bootstrap-table": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/react-bootstrap-table/-/react-bootstrap-table-4.3.1.tgz", "integrity": "sha1-9wS+Vbf2vwVX0vxb7G0l/TB9DN4=", "dev": true, "requires": { - "classnames": "2.2.5", - "prop-types": "15.6.0", - "react-modal": "3.1.11", - "react-s-alert": "1.4.0" + "classnames": "^2.1.2", + "prop-types": "^15.5.10", + "react-modal": "^3.1.7", + "react-s-alert": "^1.3.2" }, "dependencies": { "react-modal": { @@ -8805,9 +11095,9 @@ "integrity": "sha512-Pm4QAc+sWYrfRC+WRERV+JGeGZIfodZGdbvWmjPzeSWqP+EW5ATK4N1U/btNHZWFzKL1UOmkmNtozEQlEg7c+A==", "dev": true, "requires": { - "exenv": "1.2.2", - "prop-types": "15.6.0", - "warning": "3.0.0" + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "warning": "^3.0.0" } }, "react-s-alert": { @@ -8816,7 +11106,7 @@ "integrity": "sha512-OfVjF3GhP7IgDHPdRBiu8BTALIYpnhZqJcSQ4ibCtJhJ7r8VNDdmbwSOrwVTp1fOJC1W0seH4ETdYl3hxE4rxg==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.23.0" } } } @@ -8827,17 +11117,17 @@ "integrity": "sha1-GRPjLOpNeb7NA6yrvZM2EWiEgVs=", "dev": true, "requires": { - "classnames": "2.2.5", - "create-react-class": "15.6.3", - "invariant": "2.2.2", - "lodash": "4.17.4", - "prop-types": "15.6.0", - "react-highlighter": "0.4.2", - "react-input-autosize": "1.2.0", - "react-onclickoutside": "5.11.1", - "react-overlays": "0.7.4", - "react-prop-types": "0.4.0", - "warning": "3.0.0" + "classnames": "^2.2.0", + "create-react-class": "^15.5.2", + "invariant": "^2.2.1", + "lodash": "^4.17.2", + "prop-types": "^15.5.8", + "react-highlighter": "^0.4.0", + "react-input-autosize": "^1.1.4", + "react-onclickoutside": "^5.7.0", + "react-overlays": "^0.7.0", + "react-prop-types": "^0.4.0", + "warning": "^3.0.0" } }, "react-day-picker": { @@ -8846,8 +11136,8 @@ "integrity": "sha512-CbPxUWxMjqWapWq2yBarpjSINaLHq58bH8l9wS+br5eNrhrEUSUMpLlcTKfbjrZvd1cx8Fmzpx1ab64KkLPO6Q==", "dev": true, "requires": { - "object-assign": "4.1.1", - "prop-types": "15.6.0" + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" } }, "react-deep-force-update": { @@ -8862,10 +11152,10 @@ "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==", "dev": true, "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.0" + "fbjs": "^0.8.16", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" } }, "react-draft-wysiwyg": { @@ -8873,11 +11163,11 @@ "resolved": "https://registry.npmjs.org/react-draft-wysiwyg/-/react-draft-wysiwyg-1.12.13.tgz", "integrity": "sha1-YJv5kYYHg3IjtniTseQNWOIDQfQ=", "requires": { - "classnames": "2.2.5", - "draftjs-utils": "0.9.4", - "html-to-draftjs": "1.4.0", - "linkify-it": "2.0.3", - "prop-types": "15.6.0" + "classnames": "^2.2.5", + "draftjs-utils": "^0.9.3", + "html-to-draftjs": "^1.4.0", + "linkify-it": "^2.0.3", + "prop-types": "^15.6.0" } }, "react-highlighter": { @@ -8886,10 +11176,10 @@ "integrity": "sha512-Y8iP0jBcGJ40U1TOB9GjucJ0X/C845ctZ/Y34HcSreaY0lxLwegzm+Od7GE/FC7zD6xyzok7smYicg4x4Y5cww==", "dev": true, "requires": { - "blacklist": "1.1.4", - "create-react-class": "15.6.3", - "escape-string-regexp": "1.0.5", - "prop-types": "15.6.0" + "blacklist": "^1.1.4", + "create-react-class": "^15.6.2", + "escape-string-regexp": "^1.0.5", + "prop-types": "^15.6.0" } }, "react-input-autosize": { @@ -8898,8 +11188,8 @@ "integrity": "sha1-hyQQcRWfdCEjiXaR2meW7DO1fQU=", "dev": true, "requires": { - "create-react-class": "15.6.3", - "prop-types": "15.6.0" + "create-react-class": "^15.5.2", + "prop-types": "^15.5.8" } }, "react-is": { @@ -8914,10 +11204,10 @@ "integrity": "sha1-U844OEpd8I6d3A2DtDWvJVwGMHg=", "dev": true, "requires": { - "ajv": "5.2.4", - "lodash.topath": "4.5.2", - "prop-types": "15.6.0", - "setimmediate": "1.0.5" + "ajv": "^5.2.3", + "lodash.topath": "^4.5.2", + "prop-types": "^15.5.8", + "setimmediate": "^1.0.5" } }, "react-onclickoutside": { @@ -8926,7 +11216,7 @@ "integrity": "sha1-ADFOUlZ89V+rqUyrus0RlhkHBiM=", "dev": true, "requires": { - "create-react-class": "15.6.3" + "create-react-class": "^15.5.x" } }, "react-overlays": { @@ -8935,11 +11225,11 @@ "integrity": "sha512-7vsooMx3siLAuEfTs8FYeP/lAORWWFXTO8PON3KgX0Htq1Oa+po6ioSjGyO0/GO5CVSMNhpWt6V2opeexHgBuQ==", "dev": true, "requires": { - "classnames": "2.2.5", - "dom-helpers": "3.3.1", - "prop-types": "15.6.0", - "prop-types-extra": "1.1.0", - "warning": "3.0.0" + "classnames": "^2.2.5", + "dom-helpers": "^3.2.1", + "prop-types": "^15.5.10", + "prop-types-extra": "^1.0.1", + "warning": "^3.0.0" } }, "react-prop-types": { @@ -8948,7 +11238,7 @@ "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", "dev": true, "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" } }, "react-proxy": { @@ -8957,8 +11247,27 @@ "integrity": "sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=", "dev": true, "requires": { - "lodash": "4.17.4", - "react-deep-force-update": "1.1.1" + "lodash": "^4.6.1", + "react-deep-force-update": "^1.0.0" + } + }, + "react-render-html": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-render-html/-/react-render-html-0.6.0.tgz", + "integrity": "sha512-F9Xn8Iy2oJvepMdDrN+XUPOwqv3ni856ikuvu/dyJ2guozN01vF0C55Ja+CQfnziQNlLevSVXzuQKYa/mhyjAQ==", + "requires": { + "parse5": "^3.0.2", + "react-attr-converter": "^0.3.1" + }, + "dependencies": { + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + } } }, "react-rte": { @@ -8967,16 +11276,16 @@ "integrity": "sha1-8HU9VS2Y9Aj0tVJIudE2Wikycgo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "class-autobind": "0.1.4", - "classnames": "2.2.5", - "draft-js": "0.10.3", - "draft-js-export-html": "1.2.0", - "draft-js-export-markdown": "1.2.0", - "draft-js-import-html": "1.2.1", - "draft-js-import-markdown": "1.2.1", - "draft-js-utils": "1.2.0", - "immutable": "3.8.2" + "babel-runtime": "^6.23.0", + "class-autobind": "^0.1.4", + "classnames": "^2.2.5", + "draft-js": ">=0.10.0", + "draft-js-export-html": ">=0.6.0", + "draft-js-export-markdown": ">=0.3.0", + "draft-js-import-html": ">=0.4.0", + "draft-js-import-markdown": ">=0.3.0", + "draft-js-utils": ">=0.2.0", + "immutable": "^3.8.1" } }, "react-test-renderer": { @@ -8985,9 +11294,9 @@ "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", "dev": true, "requires": { - "fbjs": "0.8.16", - "object-assign": "4.1.1", - "prop-types": "15.6.0" + "fbjs": "^0.8.16", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" } }, "react-transform-catch-errors": { @@ -9002,8 +11311,8 @@ "integrity": "sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s=", "dev": true, "requires": { - "global": "4.3.2", - "react-proxy": "1.1.8" + "global": "^4.3.0", + "react-proxy": "^1.1.7" } }, "read-pkg": { @@ -9012,9 +11321,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -9023,8 +11332,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -9033,8 +11342,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -9043,7 +11352,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -9054,13 +11363,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -9069,10 +11378,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -9081,8 +11390,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "strip-indent": { @@ -9091,7 +11400,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } } } @@ -9102,9 +11411,9 @@ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" }, "dependencies": { "balanced-match": { @@ -9121,7 +11430,7 @@ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" }, "dependencies": { "balanced-match": { @@ -9150,9 +11459,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -9161,7 +11470,16 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { @@ -9170,9 +11488,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -9187,7 +11505,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -9207,14 +11525,12 @@ "repeat-element": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", @@ -9222,37 +11538,35 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "request-promise-core": { @@ -9261,7 +11575,7 @@ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.13.1" } }, "request-promise-native": { @@ -9271,8 +11585,8 @@ "dev": true, "requires": { "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "require-directory": { @@ -9293,8 +11607,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -9309,7 +11623,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { @@ -9326,23 +11640,33 @@ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -9351,7 +11675,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { @@ -9360,8 +11684,8 @@ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "dev": true, "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -9370,7 +11694,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -9385,7 +11709,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -9394,7 +11718,7 @@ "integrity": "sha512-vmvP5y/oJIJmXKHY36PIjVeI/46Sny6BMBa7/ou2zsNz1PiqU/Gtcz1GujnHz5Qlxncv+J9VlWmttnshqFj3Kg==", "dev": true, "requires": { - "symbol-observable": "1.0.4" + "symbol-observable": "^1.0.1" } }, "safe-buffer": { @@ -9403,6 +11727,20 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", @@ -9421,7 +11759,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.2.4" + "ajv": "^5.0.0" } }, "select-hose": { @@ -9435,10 +11773,10 @@ "resolved": "https://registry.npmjs.org/selectn/-/selectn-1.1.2.tgz", "integrity": "sha1-/IrNkd8/RaywGJHGdzrlKYUdaxc=", "requires": { - "brackets2dots": "1.1.0", - "curry2": "1.0.3", - "debug": "2.6.9", - "dotsplit.js": "1.1.0" + "brackets2dots": "^1.1.0", + "curry2": "^1.0.0", + "debug": "^2.5.2", + "dotsplit.js": "^1.0.3" } }, "selfsigned": { @@ -9463,18 +11801,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" } }, "serve-index": { @@ -9483,13 +11821,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "serve-static": { @@ -9498,9 +11836,9 @@ "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "dev": true, "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.1" } }, @@ -9516,6 +11854,27 @@ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -9533,8 +11892,8 @@ "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -9543,7 +11902,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -9570,13 +11929,13 @@ "integrity": "sha1-nLNGvdsYDWioBEKf/hSXjX+v1ik=", "dev": true, "requires": { - "diff": "3.4.0", + "diff": "^3.1.0", "formatio": "1.2.0", - "lodash.get": "4.4.2", - "lolex": "2.3.1", - "nise": "1.2.0", - "supports-color": "5.1.0", - "type-detect": "4.0.6" + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "lolex": { @@ -9591,7 +11950,7 @@ "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "type-detect": { @@ -9614,16 +11973,104 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, - "sntp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", - "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", - "dev": true, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "hoek": "4.2.0" + "kind-of": "^3.2.0" } }, "sockjs": { @@ -9632,8 +12079,8 @@ "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "dev": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" }, "dependencies": { "uuid": { @@ -9650,12 +12097,12 @@ "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", "dev": true, "requires": { - "debug": "2.6.9", + "debug": "^2.6.6", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.1.9" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" }, "dependencies": { "faye-websocket": { @@ -9664,7 +12111,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -9675,7 +12122,7 @@ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-list-map": { @@ -9687,8 +12134,19 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } }, "source-map-support": { "version": "0.4.18", @@ -9696,16 +12154,21 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -9726,12 +12189,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.0.20" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" } }, "spdy-transport": { @@ -9740,13 +12203,21 @@ "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "safe-buffer": "5.1.1", - "wbuf": "1.7.2" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -9756,19 +12227,20 @@ "dev": true }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "staged-git-files": { @@ -9777,6 +12249,25 @@ "integrity": "sha1-15fhtVHKemOd7AI33G60u5vhfTU=", "dev": true }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -9795,8 +12286,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-http": { @@ -9805,11 +12296,11 @@ "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "strict-uri-encode": { @@ -9824,8 +12315,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -9840,7 +12331,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9851,7 +12342,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringify-object": { @@ -9860,24 +12351,18 @@ "integrity": "sha512-jPcQYw/52HUPP8uOE4kkjxl5bB9LfHkKCTptIk3qw7ozP5XMIMlHMLjt00GGSwW6DJAf/njY5EU6Vpwl4LlBKQ==", "dev": true, "requires": { - "get-own-enumerable-property-symbols": "2.0.1", - "is-obj": "1.0.1", - "is-regexp": "1.0.0" + "get-own-enumerable-property-symbols": "^2.0.1", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -9886,7 +12371,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -9907,14 +12392,29 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "strip-url-auth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", + "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", + "dev": true + }, "style-loader": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz", "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" } }, "supports-color": { @@ -9929,13 +12429,13 @@ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" }, "dependencies": { "esprima": { @@ -9950,8 +12450,8 @@ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" } } } @@ -9980,12 +12480,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.2.4", - "ajv-keywords": "2.1.0", - "chalk": "2.2.0", - "lodash": "4.17.4", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-styles": { @@ -9994,7 +12494,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10003,9 +12503,9 @@ "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "supports-color": { @@ -10014,7 +12514,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -10025,19 +12525,6 @@ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", "dev": true }, - "test-exclude": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, "text-encoding": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", @@ -10074,7 +12561,7 @@ "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "tmp": { @@ -10083,7 +12570,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "tmpl": { @@ -10104,13 +12591,51 @@ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, "tough-cookie": { "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" + "punycode": "^1.4.1" } }, "tr46": { @@ -10125,6 +12650,15 @@ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -10149,7 +12683,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -10165,7 +12699,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -10175,7 +12709,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.15" } }, "typedarray": { @@ -10200,9 +12734,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -10211,9 +12745,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -10232,9 +12766,41 @@ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.0.1" + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } } }, "uniq": { @@ -10249,7 +12815,7 @@ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", "dev": true, "requires": { - "macaddress": "0.2.8" + "macaddress": "^0.2.8" } }, "uniqs": { @@ -10259,9 +12825,9 @@ "dev": true }, "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unpipe": { @@ -10270,6 +12836,52 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -10294,8 +12906,8 @@ "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", "dev": true, "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" + "querystringify": "~1.0.0", + "requires-port": "1.0.x" }, "dependencies": { "querystringify": { @@ -10306,6 +12918,11 @@ } } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", @@ -10353,7 +12970,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -10362,8 +12979,8 @@ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "vary": { @@ -10384,9 +13001,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vm-browserify": { @@ -10398,13 +13015,22 @@ "indexof": "0.0.1" } }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { - "makeerror": "1.0.11" + "makeerror": "1.0.x" } }, "warning": { @@ -10413,7 +13039,25 @@ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } } }, "watchpack": { @@ -10422,9 +13066,9 @@ "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "dev": true, "requires": { - "async": "2.5.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "async": "^2.1.2", + "chokidar": "^1.7.0", + "graceful-fs": "^4.1.2" } }, "wbuf": { @@ -10433,7 +13077,7 @@ "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", "dev": true, "requires": { - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "^1.0.0" } }, "webidl-conversions": { @@ -10448,28 +13092,28 @@ "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", "dev": true, "requires": { - "acorn": "5.1.2", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.2.4", - "ajv-keywords": "2.1.0", - "async": "2.5.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.0.4", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.0.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.0.1", - "yargs": "8.0.2" + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^5.1.5", + "ajv-keywords": "^2.0.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" }, "dependencies": { "camelcase": { @@ -10484,9 +13128,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -10495,9 +13139,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -10508,13 +13152,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -10523,7 +13167,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "load-json-file": { @@ -10532,10 +13176,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "os-locale": { @@ -10544,9 +13188,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "path-type": { @@ -10555,7 +13199,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "read-pkg": { @@ -10564,9 +13208,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -10575,8 +13219,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "strip-bom": { @@ -10591,7 +13235,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "which-module": { @@ -10606,19 +13250,19 @@ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" } }, "yargs-parser": { @@ -10627,7 +13271,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -10638,11 +13282,11 @@ "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=", "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.4.1", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.3.4", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" } }, "webpack-dev-server": { @@ -10652,31 +13296,31 @@ "dev": true, "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.1", - "connect-history-api-fallback": "1.4.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.2", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "0.1.1", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^1.6.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.13.3", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "import-local": "^0.1.1", "internal-ip": "1.2.0", - "ip": "1.1.5", - "loglevel": "1.5.1", - "opn": "5.1.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.1", - "serve-index": "1.9.1", + "ip": "^1.1.5", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.18", "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "4.5.0", - "webpack-dev-middleware": "1.12.0", - "yargs": "6.6.0" + "spdy": "^3.4.1", + "strip-ansi": "^3.0.1", + "supports-color": "^4.2.1", + "webpack-dev-middleware": "^1.11.0", + "yargs": "^6.6.0" }, "dependencies": { "camelcase": { @@ -10691,9 +13335,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "debug": { @@ -10711,12 +13355,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -10725,11 +13369,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -10746,7 +13390,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "pify": { @@ -10761,9 +13405,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "supports-color": { @@ -10772,7 +13416,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "yargs": { @@ -10781,19 +13425,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" } }, "yargs-parser": { @@ -10802,7 +13446,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } } } @@ -10814,9 +13458,9 @@ "dev": true, "requires": { "ansi-html": "0.0.7", - "html-entities": "1.2.1", - "querystring": "0.2.0", - "strip-ansi": "3.0.1" + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" } }, "webpack-sources": { @@ -10825,8 +13469,8 @@ "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", "dev": true, "requires": { - "source-list-map": "2.0.0", - "source-map": "0.5.7" + "source-list-map": "^2.0.0", + "source-map": "~0.5.3" } }, "websocket-driver": { @@ -10835,8 +13479,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.2" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -10867,14 +13511,20 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, + "whatwg-mimetype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", + "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==", + "dev": true + }, "whatwg-url": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", "dev": true, "requires": { - "tr46": "0.0.3", - "webidl-conversions": "3.0.1" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" }, "dependencies": { "webidl-conversions": { @@ -10897,7 +13547,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -10924,8 +13574,8 @@ "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", "dev": true, "requires": { - "errno": "0.1.4", - "xtend": "4.0.1" + "errno": "^0.1.4", + "xtend": "^4.0.1" } }, "wrap-ansi": { @@ -10934,8 +13584,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -10944,7 +13594,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -10953,9 +13603,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -10972,7 +13622,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -10981,9 +13631,18 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" } }, "xml-name-validator": { diff --git a/package.json b/package.json index 49fe994..365ae93 100644 --- a/package.json +++ b/package.json @@ -55,12 +55,13 @@ "html-to-draftjs": "^1.4.0", "lodash.debounce": "^4.0.8", "react-draft-wysiwyg": "^1.12.13", + "react-render-html": "^0.6.0", "selectn": "^1.1.2" }, "devDependencies": { - "atob": "^2.0.3", + "atob": "^2.1.1", "babel-cli": "^6.0.0", - "babel-core": "^6.0.0", + "babel-core": "^6.26.3", "babel-eslint": "^8.0.1", "babel-jest": "^21.2.0", "babel-loader": "^7.1.2", @@ -68,7 +69,7 @@ "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-polyfill": "^6.26.0", - "babel-preset-env": "^1.6.1", + "babel-preset-env": "^1.7.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", @@ -84,12 +85,12 @@ "exit-hook": "^1.1.1", "express": "^4.16.2", "extract-text-webpack-plugin": "^3.0.1", - "gh-pages": "^1.0.0", + "gh-pages": "^1.2.0", "has-flag": "^2.0.0", "html": "1.0.0", "husky": "^0.14.3", "jest": "^21.2.1", - "jsdom": "^11.3.0", + "jsdom": "^11.12.0", "lint-staged": "^6.0.0", "moment": "^2.20.1", "prettier": "^1.7.4", diff --git a/playground/app/simpleLabel/index.js b/playground/app/simpleLabel/index.js index 3ebf2e8..4cd0346 100644 --- a/playground/app/simpleLabel/index.js +++ b/playground/app/simpleLabel/index.js @@ -2,7 +2,7 @@ const schema = { type: "object", properties: { myLabel: { - title: "Demo Label: ", + title: "
  • Demo Label:
", }, }, }; @@ -14,9 +14,7 @@ const uiSchema = { classNames: "col-md-2", styles: { marginLeft: "5px", - backgroundColor: "#222333", - color: "#aaccff", - font: "italic small-caps bold 40px/2 cursive", + color: "red", }, }, }, diff --git a/src/SimpleLabel.js b/src/SimpleLabel.js index 3389d75..32ea3dd 100644 --- a/src/SimpleLabel.js +++ b/src/SimpleLabel.js @@ -1,4 +1,5 @@ import React, { Component } from "react"; +import renderHTML from "react-render-html"; export default class SimpleLabel extends Component { constructor(props) { @@ -22,7 +23,7 @@ export default class SimpleLabel extends Component { } = this.props; return ( - {this.state.label} + {renderHTML(this.state.label)} ); } From 8b043cfdf035b6fa9625e39f6f6e411035add55e Mon Sep 17 00:00:00 2001 From: Samip Date: Mon, 6 Aug 2018 16:36:49 -0400 Subject: [PATCH 215/297] Updating lint changes --- .../app/formContextField/SignatureCheckbox.js | 33 ++++--- playground/app/formContextField/index.js | 94 ++++++++++--------- src/FormContextField.js | 2 +- 3 files changed, 70 insertions(+), 59 deletions(-) diff --git a/playground/app/formContextField/SignatureCheckbox.js b/playground/app/formContextField/SignatureCheckbox.js index 2cbe3df..dfef066 100644 --- a/playground/app/formContextField/SignatureCheckbox.js +++ b/playground/app/formContextField/SignatureCheckbox.js @@ -6,7 +6,10 @@ export default class SignatureCheckbox extends Component { this.updateFormData = this.updateFormData.bind(this); this.selectionChange = this.selectionChange.bind(this); this.state = { - value: (typeof this.props.formData === "undefined"? false : this.props.formData.imgSelected) + value: + typeof this.props.formData === "undefined" + ? false + : this.props.formData.imgSelected, }; } @@ -22,7 +25,7 @@ export default class SignatureCheckbox extends Component { }; selectionChange(value) { - this.setState({ value }, () => this.updateFormData()); + this.setState({ value }, () => this.updateFormData()); } render() { @@ -30,20 +33,22 @@ export default class SignatureCheckbox extends Component { const disabled = Boolean(uiSchema["ui:disabled"]); let imgSrc = null; if (formData !== null && formData !== undefined) { - if (formData.format && formData.base64Image) { - imgSrc = `data:image/${formData.format};base64,${formData.base64Image}`; - } + if (formData.format && formData.base64Image) { + imgSrc = `data:image/${formData.format};base64,${formData.base64Image}`; + } } - + return ( -
- this.selectionChange(event.target.checked)} > - {properties.imgSelected.title} - {this.state.value && } -
+
+ this.selectionChange(event.target.checked)} + /> + {properties.imgSelected.title} + {this.state.value && } +
); } } diff --git a/playground/app/formContextField/index.js b/playground/app/formContextField/index.js index 51ffc44..39bf06b 100644 --- a/playground/app/formContextField/index.js +++ b/playground/app/formContextField/index.js @@ -4,40 +4,40 @@ let schema = { doctorSignatureOne: { type: "object", title: "RxNT Image", - properties : { - imgSelected : { - type : "boolean", - title : "Dr. Signature 1", - default : false, + properties: { + imgSelected: { + type: "boolean", + title: "Dr. Signature 1", + default: false, }, - format : { - type : "string", - title : "Image Format", + format: { + type: "string", + title: "Image Format", }, - base64Image : { - type : "string", - title : "Image Base64 String", + base64Image: { + type: "string", + title: "Image Base64 String", }, - } + }, }, doctorSignatureTwo: { type: "object", title: "RxNT Image", - properties : { - imgSelected : { - type : "boolean", - title : "Dr. Signature 2", - default : false, + properties: { + imgSelected: { + type: "boolean", + title: "Dr. Signature 2", + default: false, }, - format : { - type : "string", - title : "Image Format", + format: { + type: "string", + title: "Image Format", }, - base64Image : { - type : "string", - title : "Image Base64 String", + base64Image: { + type: "string", + title: "Image Base64 String", }, - } + }, }, }, }; @@ -46,39 +46,45 @@ let uiSchema = { doctorSignatureOne: { classNames: "col-md-12", "ui:field": "formContextField", - "actions": [{ - "component": "SignatureComponent", - "props": { - "title": "Signature", - "field": "doctorSignatureTwo" - } - }] + actions: [ + { + component: "SignatureComponent", + props: { + title: "Signature", + field: "doctorSignatureTwo", + }, + }, + ], }, doctorSignatureTwo: { classNames: "col-md-12", "ui:field": "formContextField", - "component": "SignatureComponent", - "actions": [{ - "component": "SignatureComponent", - "props": { - "title": "Signature", - "field": "doctorSignatureTwo" - } - }] + component: "SignatureComponent", + actions: [ + { + component: "SignatureComponent", + props: { + title: "Signature", + field: "doctorSignatureTwo", + }, + }, + ], }, }; let formData = { doctorSignatureOne: { - imgSelected: true, - format: "png", - base64Image: "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNTE3OEEyRTk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNTE3OEEyRjk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJDOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJEOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FYrpWAAABrNJREFUeNrkW2lsVFUUvjMWirYUkS5BXApUa2vd6gL+wAWjoP5RiW2EUBajAiqSuPADQ0w1UUQTrcFAUUSJEKriEuMWFKuJIElFSS24YNpQK6WoBbuAktbva880M8O8vnfevJm+CSf5cme599xzvnfffffce17AJFjycnLzUVwDXAgUAucBY4BMIEOqdQIdwJ/Az4J64OvWtoONibQvkACHgyiuBe4CbgLOjVNlE/AZsAmoBSE9viQAjueieBCYC5yVoAvWDKwHqkBEmy8IgON09lHgXmCESY4cBaqBlSCieUgIgOPDUCwBngBOM0MjXdL/CyDiv6QRAOcvR7EBKDL+kD3AbJBQl1AC4DjrLwaeBYYbf8m/ciu+BCJ6PScAzp+K4nXgTuNveQuYAxK6PSMAzo9C8TFwtUkN2Q7cDBIOx02AOP8FUGpSSzgf3GBHQsDGec7unwOTTWrKDiGhS02ATHjvALeb1JZ3gRlWE+MpVq0yMzIekRk/1YWP6o7Ors5vHI8AXH1Odl8BaTbKrwd4j10MTAduS8JqkKvA94BPgN0A56htNm2OMyDDKNhuSwCcT5dIrMBG6S4oLI1qezqKBcBjwGiPHW8HVgCr0W97VL/fobjMpv2vQAnaHgv/MdYVXurAeSNPhggRw56BQatRVgL3A0H5+xDwI8Dw9g/5Hlq+clmdDYwF8iV0zpb/GP2tApZHOx4m2xwQUCC+VVqOABg+AUUDkO6AgHkwaL2DJXORxPVNylUnw+gpXObaLXFRlxHoaw7U8uoXQ99vViNgqUPnKQfsKojhdW7GuxDW5JUtIuni432hH4JhLJ7Dq6qwcZiPZnpNXDJPfI0kQEJbjVM5PiIgW3nhlkQQILH9LGWnV/iIAK0ts8TngREwDchVKrnKRwRobckVnwcIKFcq4ONrkY8IWBT2SHUq5eEE3Khs/CRm6Z1+8V5sqVQ26/M5gHuhSJ79TqUFmIhOj/ppwQ8/Rshqb5yiWXFQFhsaWeU352UU0KaXlc2mBI1+Y3OzjyO/Gm2kSAIKFQ2awfQ+v3oP23gL/K5oUhh0GPiEZG8KxP97FHULgsqwtTUFCDioqHsGCRipaHA8BQjQrAcyg4roj5KVAgSMUtRNDyqVj0wBAlQ2koBuRf3xKUBAvqJuN1eCrYpAiHNAltNjpyFYDfL47oix38wdmDA5AvYr+kjzWRgcLVcqnKfsJwGNyk5u9TEBtyjrNwaVgRClTPKA/Db8aVOZslkDG2nD2vEuOkqGlLmYpHcGJLlJu8LjtvJFgx06Jvnq8xC33gUBeUE4waWjduua5wdVPrr6VS6cr6PvoXv5Ixed3g3mH/fB1V9OW1w07fM5IEouUEZR4bIWWJzsTRJ55r8I3ONSRRFs3hsIU8hkgkkulf0CPAx8qElQcuk4beYp9Epgoks138LOvqSPgfyAzIwMZlnFSobgIegc4H3gH6AkxmKDub9Mjb0DeoYDrZ1dne0eO14AvfPx8RXgAYaycahbBvt+GLgFpIM0md3PjqrMTMxpYKxB6p1v+s/n7bbSuMCqldmZyc+fRh9ND+IsAxrmG3C3qtj0J1uP84hLrnwnwJbjEQRIxzw0XB2jER93C9Bog9TjsRgzLpzuJr0BzHV6e8gwf9XoziqdCv1YE/oSTQBHwfem/3w+5syPxuukLtfdO0zk+WIs+YuPKLQ7ohzyWTIix3joPPMTLg1d/Yg5gIL7ogf32U/4WGGhYDr+34J6bUALPpPA62w6XYMOP9BaCv3HoD/PeJubODN6U/eEq4cKTIurttpBAZ4L+87TmKdtOt0ah8FbPXS+WnyLEKskqUy5FaweM5dA2e6w+pNkZuajhfMD3/zYBfDKb3Y6+cWwgytOL7bh98nQ73BEgHReIvd4Roy/a6Cs3CRYJOnq7zjV8HWcybC33mpLLKZIA84FPRYhcSokUNL2Civnjd0MjoZbUCy0+PtNkDDD5wQsFB8sxWm2+GJZd8eSt4HnZXnZ66Nb4CHYYxuxat4XmI1inbHeczskq77DMrK4z8AgK3+Q/L5EEMBn/PzQos0zAsQgvg5XY3TpNKOTSAD3NsrQX63TBqq9PVHM9NgvfXi/06ZSjfNqAoQEHj9Pled+pw8cpw2co6aKbSoJxDlJnYniKdP/sqSVrrEw7IBL/TnG+rSXEy7fYVoG/S1uffDkzVEYypB1qewJRCdb5rp9yxN6mQDZFmOS2wisCIXo8Yin7w7LiKiQEcFYfhOMnBmnzo1CLIO09Qyt47niJxDQ29trTmY56Qn4X4ABAFR7IoDmVT5NAAAAAElFTkSuQmCC", + imgSelected: true, + format: "png", + base64Image: + "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNTE3OEEyRTk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNTE3OEEyRjk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJDOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJEOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FYrpWAAABrNJREFUeNrkW2lsVFUUvjMWirYUkS5BXApUa2vd6gL+wAWjoP5RiW2EUBajAiqSuPADQ0w1UUQTrcFAUUSJEKriEuMWFKuJIElFSS24YNpQK6WoBbuAktbva880M8O8vnfevJm+CSf5cme599xzvnfffffce17AJFjycnLzUVwDXAgUAucBY4BMIEOqdQIdwJ/Az4J64OvWtoONibQvkACHgyiuBe4CbgLOjVNlE/AZsAmoBSE9viQAjueieBCYC5yVoAvWDKwHqkBEmy8IgON09lHgXmCESY4cBaqBlSCieUgIgOPDUCwBngBOM0MjXdL/CyDiv6QRAOcvR7EBKDL+kD3AbJBQl1AC4DjrLwaeBYYbf8m/ciu+BCJ6PScAzp+K4nXgTuNveQuYAxK6PSMAzo9C8TFwtUkN2Q7cDBIOx02AOP8FUGpSSzgf3GBHQsDGec7unwOTTWrKDiGhS02ATHjvALeb1JZ3gRlWE+MpVq0yMzIekRk/1YWP6o7Ors5vHI8AXH1Odl8BaTbKrwd4j10MTAduS8JqkKvA94BPgN0A56htNm2OMyDDKNhuSwCcT5dIrMBG6S4oLI1qezqKBcBjwGiPHW8HVgCr0W97VL/fobjMpv2vQAnaHgv/MdYVXurAeSNPhggRw56BQatRVgL3A0H5+xDwI8Dw9g/5Hlq+clmdDYwF8iV0zpb/GP2tApZHOx4m2xwQUCC+VVqOABg+AUUDkO6AgHkwaL2DJXORxPVNylUnw+gpXObaLXFRlxHoaw7U8uoXQ99vViNgqUPnKQfsKojhdW7GuxDW5JUtIuni432hH4JhLJ7Dq6qwcZiPZnpNXDJPfI0kQEJbjVM5PiIgW3nhlkQQILH9LGWnV/iIAK0ts8TngREwDchVKrnKRwRobckVnwcIKFcq4ONrkY8IWBT2SHUq5eEE3Khs/CRm6Z1+8V5sqVQ26/M5gHuhSJ79TqUFmIhOj/ppwQ8/Rshqb5yiWXFQFhsaWeU352UU0KaXlc2mBI1+Y3OzjyO/Gm2kSAIKFQ2awfQ+v3oP23gL/K5oUhh0GPiEZG8KxP97FHULgsqwtTUFCDioqHsGCRipaHA8BQjQrAcyg4roj5KVAgSMUtRNDyqVj0wBAlQ2koBuRf3xKUBAvqJuN1eCrYpAiHNAltNjpyFYDfL47oix38wdmDA5AvYr+kjzWRgcLVcqnKfsJwGNyk5u9TEBtyjrNwaVgRClTPKA/Db8aVOZslkDG2nD2vEuOkqGlLmYpHcGJLlJu8LjtvJFgx06Jvnq8xC33gUBeUE4waWjduua5wdVPrr6VS6cr6PvoXv5Ixed3g3mH/fB1V9OW1w07fM5IEouUEZR4bIWWJzsTRJ55r8I3ONSRRFs3hsIU8hkgkkulf0CPAx8qElQcuk4beYp9Epgoks138LOvqSPgfyAzIwMZlnFSobgIegc4H3gH6AkxmKDub9Mjb0DeoYDrZ1dne0eO14AvfPx8RXgAYaycahbBvt+GLgFpIM0md3PjqrMTMxpYKxB6p1v+s/n7bbSuMCqldmZyc+fRh9ND+IsAxrmG3C3qtj0J1uP84hLrnwnwJbjEQRIxzw0XB2jER93C9Bog9TjsRgzLpzuJr0BzHV6e8gwf9XoziqdCv1YE/oSTQBHwfem/3w+5syPxuukLtfdO0zk+WIs+YuPKLQ7ohzyWTIix3joPPMTLg1d/Yg5gIL7ogf32U/4WGGhYDr+34J6bUALPpPA62w6XYMOP9BaCv3HoD/PeJubODN6U/eEq4cKTIurttpBAZ4L+87TmKdtOt0ah8FbPXS+WnyLEKskqUy5FaweM5dA2e6w+pNkZuajhfMD3/zYBfDKb3Y6+cWwgytOL7bh98nQ73BEgHReIvd4Roy/a6Cs3CRYJOnq7zjV8HWcybC33mpLLKZIA84FPRYhcSokUNL2Civnjd0MjoZbUCy0+PtNkDDD5wQsFB8sxWm2+GJZd8eSt4HnZXnZ66Nb4CHYYxuxat4XmI1inbHeczskq77DMrK4z8AgK3+Q/L5EEMBn/PzQos0zAsQgvg5XY3TpNKOTSAD3NsrQX63TBqq9PVHM9NgvfXi/06ZSjfNqAoQEHj9Pled+pw8cpw2co6aKbSoJxDlJnYniKdP/sqSVrrEw7IBL/TnG+rSXEy7fYVoG/S1uffDkzVEYypB1qewJRCdb5rp9yxN6mQDZFmOS2wisCIXo8Yin7w7LiKiQEcFYfhOMnBmnzo1CLIO09Qyt47niJxDQ29trTmY56Qn4X4ABAFR7IoDmVT5NAAAAAElFTkSuQmCC", }, doctorSignatureTwo: { imgSelected: true, format: "png", - base64Image: "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACk5JREFUeNrUmQlsW/Udx7/P933EdkqcO016xKXt2AohrNBWdKNQWi6BxKVtQKVs0ujEhiYBHamEJlhBZdU0qdI0iWNapQEdA1bGBgqMlgKZmjRx4vTK1eZyEif2e8/2O7zf/9m5tlISmgOe9PJ8PDuf3+///V1/c5lMBt/kw3C5X7Dm/ehlff5A/Trt+i97xcsr09E7uQy406a8hn6D45F7xlt6LvXZzQ3nwS31Ctjvf/zK/cnPjly/rC9YuMEDTsdhoHkc3Z/H8KZ95c9vTUSev5QBuqWEv3fPc3c8a+999xprdzBQZEa6T4QpmkRFtQOhzT7s4CP7/uZY+dilvkO3lPD5NuPeLY8+WWD51t1o/3AE0U4BsfE0hroTCDh1CF3r/lIjlkRCE/C7dnw/VF1dDVEUMdLSiOiRQ+A/PoyCSgssdj0CdgNGx2S0NsYvKqcliYEJ+B1XrwsFAgHk5+dDr9dr77Hr2Ad/Redvn4AvaITbr4fXokeSV9HaKv6fEYseAyxgGfzD27eG/H4/urq60NOTTTQ6nQ5GoxGO67dj+QuvgVt7Jwa70xgcScHIqQgtN11UTobFhF/ndzx93fKikMvlgslk0rzPcRw8Hg8SiYR2ssMYLIPv3p8iSuoYPfpnpB0SAlYdVgZ12HE+su8N5+qB2+JtryxaEDN4utRdWL/1jn8Yi/Dee++hubkZ8Xhce5/neQwMDCASiSCVSkFRFKh6A1w33wdUXQ9+TMGFaAoGJY2gW0WxNPbUomWhCfjA5p11jsor8W9DAV5w1+ClqB6NjY2IxWKa5202G9jKnDhxAul0GqqqQpeXD8fm25Dg9UgLCrqH01DIwJp074rDzlU/XHADJuB9m26ts1eGIA8PQBESkDkdzhaswkfrtuEPkSEcPXoUyWQSXq8XRUVFFLCtmhFsJZxXbUTgrl0QU3pIooSxBBkny3Co0g0LasAk/Mab6xzlqyEN9xM8k0wGeW47qpY58VlUwdvuNXhXV4Djx49r6ZTFA4uN/v5+LT7MZjNs2+6DrDNBSmUgiySvjA4JnbFhwQyYhL/uJoJfBXlkABmBB0cv5rkcWHGFC22DSfBpFUSDY741+MBahqamJsjkXbYS7HQ6nZq8ZMr0rtsfgsIZafWMaMmrOntbvP2PC2LABHzetVvr7KUrIBG8KiQ0z3vdBB90IjwgIk7wGdJ5RpGRkSUcc63ABwigvb1dqwcszTIjWHplUrJuvBUZqw3dK2tGT6vmxxYkiCfhr9lSZy+pnAHvIdmsDLoQ7hcQT8nkeYUMIHhFIgNI11IKDfYKhCUzWHFlwd3X14djx45pmal/LI53vrc78mbFlod3xtsPz6gDTU9wcwJd90zmC+G9GzbVWYuXE/wgMukkdZd6gnegKuhFSx8PXmYNDPkt1wFonUAmuxIeE5AsqtCy0+rVqzX5sGLHVuOtz062DaRR/5OPDrw+74VsAt5z1cY6KxUheXgavJfgC71ouzAOXtJKLv0h4Cw+PczBWziUe2x4veM8oqKKPKoLLJjXr1+fhRfS9Y80vHho3geaCXj3+lqCL4U8OqTBg8F7nKgs8qHtPINXc55XkXN9zvMK3GaC99rREumioiaikbOjlgxgteDv/wl/IfxlGzAJv7amznpFMcEzz6c0eK+HPF/sQ/v5Uco2mZznJ6Q35Xm3RYdyvwMt7Qxe0N7to9Dcd0bEpp4s/J/2Pk7wj8/43wcPHsTmyzFgAt61ZkOdJT+Y83wWnsmmssSP9p4RJCjbcMzz6pTnM2wVNHg9yvx2tIY7wSeEye9ORvvR0XPmYAfwe/6V507M+0zM4EPmCwd6KrbfYPEXQI5Fp+CZbErzEeli8AqpRkf+Vic9z1InmGysepTm2xEOn5sBn6Lg53vPHcQs4L+SAQdGN91Raz2792TJ7SGLf1kWXkppEnG7PVhelo+O7igSKeWi2YZ53mU1oCRA9aD1LIQEPwU/GoVwoWvW8HM2gMF3Sb69zYU7Q2ZvPslmOAtPJd/tcRP8MnR0DoFPyll4LpdtpgWsy2Ygz7vQHj4NPj4Fn44NQxjonRP8nArZBHxTwfaQyeuDMjYMNclrgeh02lBeXoBT5/qRiAvZ6jqtSGmFijKTk/J8KWsjWk8jERvL3kdniuJnrvA/+/D0nFbgCgZ/wndjyOzyaPAZKZ2NB4IvZfCnuiGQbDjq45HRa5VWcz/zPD12WI0oKfCgveUUhOmej8coaAfm7Pk5SegIH3rmuFodshIRa8wmg9lpR2lFIc60kZZZtqGRkGUYTkuZXFb3DN5mQhFV4khLZAa8lBhHcmToK8PP1gD9Nkf4R0JRCPuaaD61OWF0uuAkzZdUFOEsg6cswhnN4Bi8njyu0+eSjgo7gy/04UxLB4TxxBQ8H0cqNnxZ8LONgVucfg/qa7ow9GADnv52M4T+XuqCJXS2n6Fxb1zTMYsHNSlATeXOtAibiaMBxU/wEfCjsUnNS/GxeYGfrQEPeANugFpem1HCbjKk95ef4E5vA6Kd52g6krTswk5VJPCkqJ1Wow6Fxfk4e5LgR2KT92ieHx+dF/jZSChPb9Df5aI+BSIFrUOvadtrSuL5bR1wmST85uNysMDWqi1TDXnYRrNtkME3hyFO07ycSjID5g1+Ngbc5c5z0jJRRlG0fTxtgqKxiJ5z+NXGCPQZGc8eXQGzw6nVAxtNXMVVJegOR2bCU6WWBH5e4WdjwA/yqMWFRH2wnssWJJIBpKn54cmaMKiBxO+aVsGVH0CwqgxdrTPhFUq5frn/cB/c8wr/ZQZUmkyGa+0WukUkA5y5toDBK9Puopd+XdOEM1ErPjUUoid8CuK0bKNQjHxH1xb+RC6vn2/4LzPgAa/LSoByVjbIFSd52vSm5toEevmR5RG8834QJot1GryMDYZIW4Eh9tRCwF/KACaYPXl2I3VY5H1TTj6s+DIDmD1aLLDn2etWSxceLOjAq4PV1JTqyVYFG4wdbWXG4frXUt993fvQnov+ozQF9kIYcIvTZoTJoEISFRj1uqx01NxMkoMGGxGlDBQaWNic/oD/JF7qW6FV4KtNpzT4v4i1hzDZTi/eCtR5mfZlRdtMMpIh2baS6T+jgasEnpSmPqDQipSpvXi1+BUcGKrNwgs1Cwr/RQZYKRveZCQvCvEsYSoOmMWsaqZDs+c8DS1xOrWZlya9Mu7Coc+lqvfpXJpfKW886N/141oR968XUGA3aLtpsqIV4slZXJBVjNMKsCs9f5leZgP3kdquX+Tyk7xovzkY/gf+UbPZvD9adDfe6nwDO8v6scySzTo86T5BXDxJiDz/Br30cg5aXMofCg3T4U0m0/61a9eira0Nn8YLER+P4Z41IotTJv23c55+k84xfE0OQw7eodPp9vt8Pm1XmG2wDg4O4kCnfffOarGRbonQOYSv4aH9yMe2FsmIervdvodtZ7N9SVVVd/9zV/TFr7LNuCQS0posnocgCHvIqFnBf61WYFosOAg+cTkbvYtuwDf50OEbfvxXgAEAFpyqPqutRYcAAAAASUVORK5CYII=", -}, + base64Image: + "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACk5JREFUeNrUmQlsW/Udx7/P933EdkqcO016xKXt2AohrNBWdKNQWi6BxKVtQKVs0ujEhiYBHamEJlhBZdU0qdI0iWNapQEdA1bGBgqMlgKZmjRx4vTK1eZyEif2e8/2O7zf/9m5tlISmgOe9PJ8PDuf3+///V1/c5lMBt/kw3C5X7Dm/ehlff5A/Trt+i97xcsr09E7uQy406a8hn6D45F7xlt6LvXZzQ3nwS31Ctjvf/zK/cnPjly/rC9YuMEDTsdhoHkc3Z/H8KZ95c9vTUSev5QBuqWEv3fPc3c8a+999xprdzBQZEa6T4QpmkRFtQOhzT7s4CP7/uZY+dilvkO3lPD5NuPeLY8+WWD51t1o/3AE0U4BsfE0hroTCDh1CF3r/lIjlkRCE/C7dnw/VF1dDVEUMdLSiOiRQ+A/PoyCSgssdj0CdgNGx2S0NsYvKqcliYEJ+B1XrwsFAgHk5+dDr9dr77Hr2Ad/Redvn4AvaITbr4fXokeSV9HaKv6fEYseAyxgGfzD27eG/H4/urq60NOTTTQ6nQ5GoxGO67dj+QuvgVt7Jwa70xgcScHIqQgtN11UTobFhF/ndzx93fKikMvlgslk0rzPcRw8Hg8SiYR2ssMYLIPv3p8iSuoYPfpnpB0SAlYdVgZ12HE+su8N5+qB2+JtryxaEDN4utRdWL/1jn8Yi/Dee++hubkZ8Xhce5/neQwMDCASiSCVSkFRFKh6A1w33wdUXQ9+TMGFaAoGJY2gW0WxNPbUomWhCfjA5p11jsor8W9DAV5w1+ClqB6NjY2IxWKa5202G9jKnDhxAul0GqqqQpeXD8fm25Dg9UgLCrqH01DIwJp074rDzlU/XHADJuB9m26ts1eGIA8PQBESkDkdzhaswkfrtuEPkSEcPXoUyWQSXq8XRUVFFLCtmhFsJZxXbUTgrl0QU3pIooSxBBkny3Co0g0LasAk/Mab6xzlqyEN9xM8k0wGeW47qpY58VlUwdvuNXhXV4Djx49r6ZTFA4uN/v5+LT7MZjNs2+6DrDNBSmUgiySvjA4JnbFhwQyYhL/uJoJfBXlkABmBB0cv5rkcWHGFC22DSfBpFUSDY741+MBahqamJsjkXbYS7HQ6nZq8ZMr0rtsfgsIZafWMaMmrOntbvP2PC2LABHzetVvr7KUrIBG8KiQ0z3vdBB90IjwgIk7wGdJ5RpGRkSUcc63ABwigvb1dqwcszTIjWHplUrJuvBUZqw3dK2tGT6vmxxYkiCfhr9lSZy+pnAHvIdmsDLoQ7hcQT8nkeYUMIHhFIgNI11IKDfYKhCUzWHFlwd3X14djx45pmal/LI53vrc78mbFlod3xtsPz6gDTU9wcwJd90zmC+G9GzbVWYuXE/wgMukkdZd6gnegKuhFSx8PXmYNDPkt1wFonUAmuxIeE5AsqtCy0+rVqzX5sGLHVuOtz062DaRR/5OPDrw+74VsAt5z1cY6KxUheXgavJfgC71ouzAOXtJKLv0h4Cw+PczBWziUe2x4veM8oqKKPKoLLJjXr1+fhRfS9Y80vHho3geaCXj3+lqCL4U8OqTBg8F7nKgs8qHtPINXc55XkXN9zvMK3GaC99rREumioiaikbOjlgxgteDv/wl/IfxlGzAJv7amznpFMcEzz6c0eK+HPF/sQ/v5Uco2mZznJ6Q35Xm3RYdyvwMt7Qxe0N7to9Dcd0bEpp4s/J/2Pk7wj8/43wcPHsTmyzFgAt61ZkOdJT+Y83wWnsmmssSP9p4RJCjbcMzz6pTnM2wVNHg9yvx2tIY7wSeEye9ORvvR0XPmYAfwe/6V507M+0zM4EPmCwd6KrbfYPEXQI5Fp+CZbErzEeli8AqpRkf+Vic9z1InmGysepTm2xEOn5sBn6Lg53vPHcQs4L+SAQdGN91Raz2792TJ7SGLf1kWXkppEnG7PVhelo+O7igSKeWi2YZ53mU1oCRA9aD1LIQEPwU/GoVwoWvW8HM2gMF3Sb69zYU7Q2ZvPslmOAtPJd/tcRP8MnR0DoFPyll4LpdtpgWsy2Ygz7vQHj4NPj4Fn44NQxjonRP8nArZBHxTwfaQyeuDMjYMNclrgeh02lBeXoBT5/qRiAvZ6jqtSGmFijKTk/J8KWsjWk8jERvL3kdniuJnrvA/+/D0nFbgCgZ/wndjyOzyaPAZKZ2NB4IvZfCnuiGQbDjq45HRa5VWcz/zPD12WI0oKfCgveUUhOmej8coaAfm7Pk5SegIH3rmuFodshIRa8wmg9lpR2lFIc60kZZZtqGRkGUYTkuZXFb3DN5mQhFV4khLZAa8lBhHcmToK8PP1gD9Nkf4R0JRCPuaaD61OWF0uuAkzZdUFOEsg6cswhnN4Bi8njyu0+eSjgo7gy/04UxLB4TxxBQ8H0cqNnxZ8LONgVucfg/qa7ow9GADnv52M4T+XuqCJXS2n6Fxb1zTMYsHNSlATeXOtAibiaMBxU/wEfCjsUnNS/GxeYGfrQEPeANugFpem1HCbjKk95ef4E5vA6Kd52g6krTswk5VJPCkqJ1Wow6Fxfk4e5LgR2KT92ieHx+dF/jZSChPb9Df5aI+BSIFrUOvadtrSuL5bR1wmST85uNysMDWqi1TDXnYRrNtkME3hyFO07ycSjID5g1+Ngbc5c5z0jJRRlG0fTxtgqKxiJ5z+NXGCPQZGc8eXQGzw6nVAxtNXMVVJegOR2bCU6WWBH5e4WdjwA/yqMWFRH2wnssWJJIBpKn54cmaMKiBxO+aVsGVH0CwqgxdrTPhFUq5frn/cB/c8wr/ZQZUmkyGa+0WukUkA5y5toDBK9Puopd+XdOEM1ErPjUUoid8CuK0bKNQjHxH1xb+RC6vn2/4LzPgAa/LSoByVjbIFSd52vSm5toEevmR5RG8834QJot1GryMDYZIW4Eh9tRCwF/KACaYPXl2I3VY5H1TTj6s+DIDmD1aLLDn2etWSxceLOjAq4PV1JTqyVYFG4wdbWXG4frXUt993fvQnov+ozQF9kIYcIvTZoTJoEISFRj1uqx01NxMkoMGGxGlDBQaWNic/oD/JF7qW6FV4KtNpzT4v4i1hzDZTi/eCtR5mfZlRdtMMpIh2baS6T+jgasEnpSmPqDQipSpvXi1+BUcGKrNwgs1Cwr/RQZYKRveZCQvCvEsYSoOmMWsaqZDs+c8DS1xOrWZlya9Mu7Coc+lqvfpXJpfKW886N/141oR968XUGA3aLtpsqIV4slZXJBVjNMKsCs9f5leZgP3kdquX+Tyk7xovzkY/gf+UbPZvD9adDfe6nwDO8v6scySzTo86T5BXDxJiDz/Br30cg5aXMofCg3T4U0m0/61a9eira0Nn8YLER+P4Z41IotTJv23c55+k84xfE0OQw7eodPp9vt8Pm1XmG2wDg4O4kCnfffOarGRbonQOYSv4aH9yMe2FsmIervdvodtZ7N9SVVVd/9zV/TFr7LNuCQS0posnocgCHvIqFnBf61WYFosOAg+cTkbvYtuwDf50OEbfvxXgAEAFpyqPqutRYcAAAAASUVORK5CYII=", + }, }; export default { schema, uiSchema, formData }; diff --git a/src/FormContextField.js b/src/FormContextField.js index 42ecc0b..999fb9a 100644 --- a/src/FormContextField.js +++ b/src/FormContextField.js @@ -11,7 +11,7 @@ export default class FormContextField extends Component { return (
- +
); } From 83554488a690069f00a156885c546d27a9514049 Mon Sep 17 00:00:00 2001 From: Samip Date: Mon, 6 Aug 2018 16:40:47 -0400 Subject: [PATCH 216/297] Updated version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 365ae93..9b9474f 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.24", + "version": "0.9.25", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From d37195ed3cd516901aaaec292645ae4e60f0ecdd Mon Sep 17 00:00:00 2001 From: yusuff Date: Mon, 13 Aug 2018 01:22:32 -0700 Subject: [PATCH 217/297] EN-124 ReactDatePicker Month-Year navigation --- playground/style.css | 4 +- src/ReactDatePicker.js | 105 ++++++++++++++++++++++++++++++++++------- 2 files changed, 90 insertions(+), 19 deletions(-) diff --git a/playground/style.css b/playground/style.css index 4b16645..03ea70e 100644 --- a/playground/style.css +++ b/playground/style.css @@ -46,8 +46,8 @@ .DayPicker-NavButton { position: absolute; cursor: pointer; - top: 1rem; - right: 1.5rem; + top: 1.5rem; + right: 0.5rem; margin-top: 2px; color: #8b9898; width: 1.25rem; diff --git a/src/ReactDatePicker.js b/src/ReactDatePicker.js index f2494a3..246cfbb 100644 --- a/src/ReactDatePicker.js +++ b/src/ReactDatePicker.js @@ -4,8 +4,10 @@ import DayPickerInput from "react-day-picker/DayPickerInput"; import { formatDate, parseDate } from "react-day-picker/moment"; import { DefaultLabel } from "./Label"; import moment from "moment"; - +/*eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"]*/ const DEFAULT_UPDATE_DELAY = 100; +const YEAR_DISPLAY_FROM = 1910; +const YEAR_DISPLAY_TO = new Date().getFullYear() + 20; function normalizeDay(day, format) { if (day === undefined) { @@ -17,6 +19,9 @@ function normalizeDay(day, format) { } } +const currentYear = new Date().getFullYear(); +const fromMonth = new Date(currentYear, 0); + function loadFormatedDate(date, setCurrentDate) { let formDate = date; if (!date || date === "") { @@ -24,11 +29,49 @@ function loadFormatedDate(date, setCurrentDate) { } return formDate; } + +function YearMonthForm({ date, localeUtils, onChange }) { + const months = localeUtils.getMonths(); + const years = []; + for (let i = YEAR_DISPLAY_FROM; i <= YEAR_DISPLAY_TO; i += 1) { + years.push(i); + } + + const handleChange = function handleChange(e) { + const { year, month } = e.target.form; + onChange(new Date(year.value, month.value)); + }; + + return ( +
+ + +
+ ); +} export default class ReactDatePicker extends Component { constructor(props) { super(props); - - let { schema: { format = "date-time" }, formData } = props; + this.handleYearMonthChange = this.handleYearMonthChange.bind(this); + this.state = { + month: fromMonth + }; + let { + schema: { format = "date-time" }, + formData + } = props; this.day = formData ? format === "date" ? new Date(formData).toISOString().substr(0, 10) @@ -60,17 +103,23 @@ export default class ReactDatePicker extends Component { } /* date filed Validation , will accept only number and forward slash */ }; + handleClick = evt => { + this.setState({ overlay: true }); + }; + handleBlur = () => { let { - uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {}, //eslint-disable-line + uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {} //eslint-disable-line } = this.props; - setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? }; notifyChange = () => { let day = this.day; - let { schema: { format = "date-time" }, onChange, formData } = this.props; - + let { + schema: { format = "date-time" }, + onChange, + formData + } = this.props; let event = normalizeDay(day, format); if (event !== formData && event != undefined) { onChange(event); @@ -79,20 +128,38 @@ export default class ReactDatePicker extends Component { handleDayChange = day => { this.day = day; + setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? }; - + handleYearMonthChange(month) { + this.setState({ month }); + setTimeout(this.notifyChange, 0); //do we need a fixed time delay?? + } render() { let { uiSchema = {}, formData, - idSchema: { $id } = {}, - schema: { format = "date-time" }, + schema: { format = "date-time" } } = this.props; - let { rdp = {}, defaultCurrentDate = false } = uiSchema; + const dayPickerProps = { + month: this.state.month, + captionElement: ({ date, localeUtils }) => ( + + ), + inputProps: { + className: "form-control", + type: "text" + } + }; formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date + let { rdp = {}, defaultCurrentDate = false } = uiSchema; let dayPickerInputProps = Object.assign( { onDayChange: this.handleDayChange, + keepFocus: false, value: formData ? format === "date" ? moment(formData).format("MM/DD/YYYY") @@ -106,17 +173,21 @@ export default class ReactDatePicker extends Component { inputProps: { className: "form-control", type: "text", - autoFocus: uiSchema["ui:autofocus"], - }, + autoFocus: uiSchema["ui:autofocus"] + } }, rdp ); dayPickerInputProps.inputProps.onBlur = this.handleBlur; + formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date return ( -
+
- +
); } @@ -124,6 +195,6 @@ export default class ReactDatePicker extends Component { ReactDatePicker.propTypes = { schema: PropTypes.shape({ - format: PropTypes.oneOf(["date-time", "date"]), - }), + format: PropTypes.oneOf(["date-time", "date"]) + }) }; From 5b94d34b4fe2eac46462a4f72160e88a9bcac92f Mon Sep 17 00:00:00 2001 From: rajaramg Date: Mon, 13 Aug 2018 13:34:53 +0000 Subject: [PATCH 218/297] Updated version to 0.9.26 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9b9474f..50d25fe 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.25", + "version": "0.9.26", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From fe4f7e1db2431d933ceb83523299e7d9f4cd7a8d Mon Sep 17 00:00:00 2001 From: yusuff Date: Tue, 21 Aug 2018 19:21:54 +0530 Subject: [PATCH 219/297] RS-NA - Adding Custom row Configurations to the table. --- playground/app/medications/uiSchema.js | 222 +++++++++++++------------ src/table/columnHeadersFactory.js | 72 ++++++-- 2 files changed, 178 insertions(+), 116 deletions(-) diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 8363683..1ee9ee5 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -2,26 +2,26 @@ export default { medicationData: { "ui:field": "collapsible", "ui:options": { - label: false, + label: false }, label: false, collapse: { field: "ObjectField", collapsed: false, legend: { - component: "LanguageLegend", + component: "LanguageLegend" }, actions: [ { - component: "Button", - }, + component: "Button" + } ], - addTo: "medications", + addTo: "medications" }, medications: { "ui:field": "table", "ui:options": { - label: false, + label: false }, classNames: "col-md-12", table: { @@ -29,7 +29,7 @@ export default { tableCols: [ { dataField: "drugId", - hidden: true, + hidden: true }, { dataField: "drugName", @@ -41,204 +41,202 @@ export default { { DrugId: 471154, DrugName: - "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", + "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit" }, { DrugId: 471211, - DrugName: - "AmLactin Distribution Pack 12 %-12 % topical kit", + DrugName: "AmLactin Distribution Pack 12 %-12 % topical kit" }, { DrugId: 237930, - DrugName: "ceftibuten 180 mg/5 mL oral suspension", + DrugName: "ceftibuten 180 mg/5 mL oral suspension" }, { DrugId: 195800, - DrugName: "ceftibuten 400 mg capsule", + DrugName: "ceftibuten 400 mg capsule" }, { DrugId: 445980, - DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension", + DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension" }, { DrugId: 273242, DrugName: - "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension" }, { DrugId: 436727, - DrugName: - "Children's Ibuprofen 100 mg/5 mL oral suspension", + DrugName: "Children's Ibuprofen 100 mg/5 mL oral suspension" }, { DrugId: 557123, - DrugName: "Comfort Pac-Ibuprofen 800 mg kit", + DrugName: "Comfort Pac-Ibuprofen 800 mg kit" }, { DrugId: 219132, - DrugName: "dibucaine 1 % topical ointment", + DrugName: "dibucaine 1 % topical ointment" }, { DrugId: 292795, - DrugName: "dibucaine HCl (bulk) 100 % powder", + DrugName: "dibucaine HCl (bulk) 100 % powder" }, { DrugId: 554201, - DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet", + DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet" }, { DrugId: 469644, - DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet", + DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet" }, { DrugId: 156812, - DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet", + DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet" }, { DrugId: 290029, - DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension" }, { DrugId: 554209, DrugName: "Ibudone 10 mg-200 mg tablet" }, { DrugId: 554208, - DrugName: "Ibudone 5 mg-200 mg tablet", + DrugName: "Ibudone 5 mg-200 mg tablet" }, { DrugId: 227645, DrugName: "ibuprofen (bulk) 100 % powder" }, { DrugId: 298404, - DrugName: "ibuprofen 100 mg chewable tablet", + DrugName: "ibuprofen 100 mg chewable tablet" }, { DrugId: 234997, DrugName: "ibuprofen 100 mg tablet" }, { DrugId: 278995, - DrugName: "ibuprofen 100 mg/5 mL oral suspension", + DrugName: "ibuprofen 100 mg/5 mL oral suspension" }, { DrugId: 182478, DrugName: "ibuprofen 200 mg capsule" }, { DrugId: 256217, - DrugName: "ibuprofen 200 mg tablet", + DrugName: "ibuprofen 200 mg tablet" }, { DrugId: 250621, DrugName: "ibuprofen 400 mg tablet" }, { DrugId: 237650, - DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension", + DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension" }, { DrugId: 275877, DrugName: "ibuprofen 600 mg tablet" }, { DrugId: 173420, - DrugName: "ibuprofen 800 mg tablet", + DrugName: "ibuprofen 800 mg tablet" }, { DrugId: 449425, DrugName: - "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet", + "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet" }, { DrugId: 472085, - DrugName: "Ibuprofen IB 100 mg chewable tablet", + DrugName: "Ibuprofen IB 100 mg chewable tablet" }, { DrugId: 281309, - DrugName: "Ibuprofen IB 200 mg tablet", + DrugName: "Ibuprofen IB 200 mg tablet" }, { DrugId: 471498, - DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet", + DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet" }, { DrugId: 545552, DrugName: - "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution", + "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution" }, { DrugId: 581894, - DrugName: "Ibuprofen PM 200 mg-25 mg capsule", + DrugName: "Ibuprofen PM 200 mg-25 mg capsule" }, { DrugId: 557264, - DrugName: "Ibuprofen PM 200 mg-38 mg tablet", + DrugName: "Ibuprofen PM 200 mg-38 mg tablet" }, { DrugId: 550378, DrugName: - "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet", + "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet" }, { DrugId: 472620, - DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet", + DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet" }, { DrugId: 281153, DrugName: - "ibutilide fumarate 0.1 mg/mL intravenous solution", + "ibutilide fumarate 0.1 mg/mL intravenous solution" }, { DrugId: 449511, DrugName: - "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension", + "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension" }, { DrugId: 472123, DrugName: - "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension", + "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension" }, { DrugId: 454370, - DrugName: "squaric acid dibutylest.(bulk) 100 % liquid", + DrugName: "squaric acid dibutylest.(bulk) 100 % liquid" }, { DrugId: 185726, - DrugName: "squaric acid dibutylester powder", - }, + DrugName: "squaric acid dibutylester powder" + } ], mapping: { drugName: "DrugName", - drugId: "DrugId", + drugId: "DrugId" }, minLength: 2, labelKey: "DrugName", bodyContainer: true, - cleanAfterSelection: true, - }, - }, + cleanAfterSelection: true + } + } }, { dataField: "allergyReaction", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1", + editColumnClassName: "col-md-1" }, { dataField: "dosage", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1", + editColumnClassName: "col-md-1" }, { dataField: "quantity", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - enableHelpText: true, + enableHelpText: true }, { dataField: "unit", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - enableHelpText: true, + enableHelpText: true }, { dataField: "refills", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1", + editColumnClassName: "col-md-1" }, { dataField: "useGeneric", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1", + editColumnClassName: "col-md-1" }, { dataField: "startDate", @@ -249,34 +247,54 @@ export default { placeholder: "MM/DD/YYYY", inputProps: { className: "form-control", - type: "text", - }, - }, + type: "text" + } + } }, - defaultCurrentDate: true, + defaultCurrentDate: true }, { - dataField: "isSelected", + dataField: "isSelected" // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , - }, + } ], + tableConfig: { + // row, added by manually by external action + customRowConfiguration: { + mandatoryField: ["description"], + action: { + updateClassNames: { + // Upadting Class Names for the custom rows + classToAdd: { + classNameToAdd: "disableEdit", + columnsToAdd: ["drugName"] + }, + classToDelete: { + classNameToDelete: "DeleteClass", + columnsToDelete: [] + }, + validate: { + field: "isCustomRow" + } + } + } + } + }, rightActions: [ { - "action": "update", - "className": "table-action", - "columnClassName": "table-action", - "editColumnClassName": "table-action", - "icon": "glyphicon glyphicon-plus", - "actionConfiguration": { - "action": "update", - "fieldToUpdate": [ - "isSelected" - ], - "filterField": "isSelected", - 'actionCompletedIcon' : "glyphicon glyphicon-refresh", - "actionCompletedClassName": "deleted-row", - "mandatoryField" : [ 'drugName' ] + action: "update", + className: "table-action", + columnClassName: "table-action", + editColumnClassName: "table-action", + icon: "glyphicon glyphicon-plus", + actionConfiguration: { + action: "update", + fieldToUpdate: ["isSelected"], + filterField: "isSelected", + actionCompletedIcon: "glyphicon glyphicon-refresh", + actionCompletedClassName: "deleted-row", + mandatoryField: ["drugName"] } }, { @@ -284,22 +302,22 @@ export default { className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - icon: "glyphicon glyphicon-arrow-up", + icon: "glyphicon glyphicon-arrow-up" }, { action: "movedown", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - icon: "glyphicon glyphicon-arrow-down", - }, - ], - }, + icon: "glyphicon glyphicon-arrow-down" + } + ] + } }, medications_no_active: { classNames: "col-md-6", - nav: ["medications"], - }, + nav: ["medications"] + } }, allergyData: { classNames: "col-md-12", @@ -307,10 +325,10 @@ export default { "ui:order": ["noKnownAllergies", "noKnownDrugAllergies", "allergies"], "ui:field": "collapsible", noKnownAllergies: { - classNames: "col-md-6", + classNames: "col-md-6" }, noKnownDrugAllergies: { - classNames: "col-md-6", + classNames: "col-md-6" }, allergies: { classNames: "col-md-12", @@ -319,11 +337,11 @@ export default { tableCols: [ { dataField: "allergyId", - hidden: true, + hidden: true }, { dataField: "allergyName", - enableHelpText: true, + enableHelpText: true // hidden : true, // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , @@ -332,16 +350,16 @@ export default { dataField: "allergyReaction", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1", + editColumnClassName: "col-md-1" }, { - dataField: "isSelected", + dataField: "isSelected" // hidden : true, // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , }, { - dataField: "allergyActive", + dataField: "allergyActive" // hidden : true, // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , }, @@ -358,12 +376,12 @@ export default { optionsPath: "Allergies", mapping: { allergyId: "AllergyId", - allergyName: "AllergyName", + allergyName: "AllergyName" }, - labelKey: "AllergyName", - }, - }, - }, + labelKey: "AllergyName" + } + } + } ], focusOnAdd: 1, rightActions: [ @@ -372,22 +390,22 @@ export default { className: "table-action", columnClassName: "table-action", editColumnClassName: "table-action", - icon: "glyphicons glyphicons-remove-circle glyPhiconRedColor", - }, - ], - }, + icon: "glyphicons glyphicons-remove-circle glyPhiconRedColor" + } + ] + } }, "ui:options": { - label: false, + label: false }, collapse: { field: "ObjectField", collapsed: false, icon: { - add: "glyphicon glyphicon-plus-sign glyPhiconGreen", + add: "glyphicon glyphicon-plus-sign glyPhiconGreen" }, actions: [], - addTo: "allergies", - }, - }, + addTo: "allergies" + } + } }; diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index 50a4f22..8168bac 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -2,6 +2,37 @@ import React from "react"; import actionHeaderFrom from "./actionHeaderFactory"; import moment from "moment"; +const toColumnClassNames = (fieldProp, fieldUIProp, customRowConfiguration) => { + if ( + fieldProp.type === "string" && + Object.keys(customRowConfiguration).length > 0 + ) { + console.log("CHECK"); + let classNameAdd = false; + let fieldToValidate = false; + Object.keys(customRowConfiguration.action).map(function(action) { + if (action === "updateClassNames") { + let { classToAdd, validate } = customRowConfiguration.action[action]; + //adding class into the row + let { classNameToAdd, columnsToAdd } = classToAdd; + let { field } = validate; + let fieldToAddClass = columnsToAdd + ? columnsToAdd.find(cols => cols === fieldUIProp.dataField) + : false; + if (fieldToAddClass) { + classNameAdd = classNameToAdd; + fieldToValidate = field; + } + } + }); + if (classNameAdd && fieldToValidate) { + return (cell, row) => + typeof row[fieldToValidate] === "undefined" || !(fieldToValidate in row) + ? classNameAdd + : ""; + } + } +}; const toDataAlignment = fieldProp => { if (fieldProp.type === "number") { return "right"; @@ -36,10 +67,13 @@ const toDataFormat = (fieldProp, fieldUIProp, defaultFilterKey) => {
+ style={{ textAlign: "right" }} + >
); @@ -69,55 +103,64 @@ const toEditable = fieldProp => { }); return { type: "select", - options: { values }, + options: { values } }; } else { return { type: "select", - options: { values: fieldProp.enum }, + options: { values: fieldProp.enum } }; } } else if (fieldProp.type === "boolean") { return { - type: "checkbox", + type: "checkbox" }; } else if (fieldProp.format === "date-time") { return { - type: "datetime-local", + type: "datetime-local" }; } else if (fieldProp.format === "date") { return { - type: "date", + type: "date" }; } else if (fieldProp.format === "time") { return { - type: "time", + type: "time" }; } else if (fieldProp.type === "number") { return { - type: "number", + type: "number" }; } return true; }; const columnHeadersFromSchema = (schema, uiSchema) => { - let { items: { properties, defaultFilterKey = false } } = schema; + let { + items: { properties, defaultFilterKey = false } + } = schema; - let { table: { tableCols } } = uiSchema; + let { + table: { tableCols, tableConfig = {} } + } = uiSchema; let schemaCols = Object.keys(properties).map(dataField => { let { title } = properties[dataField]; let editable = toEditable(properties[dataField]); let uiProperties = tableCols ? tableCols.find(cols => cols.dataField === dataField) : false; - + let { customRowConfiguration = {} } = tableConfig; let dataFormat = toDataFormat( properties[dataField], uiProperties, defaultFilterKey ); let dataAlign = toDataAlignment(properties[dataField]); + let columnClassName = toColumnClassNames( + properties[dataField], + uiProperties, + customRowConfiguration + ); let columnTitle = false; if (uiProperties) { @@ -131,6 +174,7 @@ const columnHeadersFromSchema = (schema, uiSchema) => { dataFormat, dataAlign, columnTitle, + columnClassName }; }); return schemaCols; @@ -187,7 +231,7 @@ const overrideColEditable = (colConf, fieldSchema, fields) => { uiSchema={fieldUISchema} onChange={onUpdate} /> - ), + ) }; } }; @@ -243,7 +287,7 @@ const setColumnCSSIfMissing = (col, css) => { let { className = css, columnClassName = css, - editColumnClassName = css, + editColumnClassName = css } = col; Object.assign(col, { className, columnClassName, editColumnClassName }); }; From 62924fd7adf92912832805449a11b998c2aee41f Mon Sep 17 00:00:00 2001 From: Samip Date: Tue, 21 Aug 2018 15:29:40 -0400 Subject: [PATCH 220/297] Code refactor --- playground/app/medications/uiSchema.js | 191 +++++++++++++------------ src/table/columnHeadersFactory.js | 36 ++--- 2 files changed, 111 insertions(+), 116 deletions(-) diff --git a/playground/app/medications/uiSchema.js b/playground/app/medications/uiSchema.js index 3306866..62c675d 100644 --- a/playground/app/medications/uiSchema.js +++ b/playground/app/medications/uiSchema.js @@ -2,26 +2,26 @@ export default { medicationData: { "ui:field": "collapsible", "ui:options": { - label: false + label: false, }, label: false, collapse: { field: "ObjectField", collapsed: false, legend: { - component: "LanguageLegend" + component: "LanguageLegend", }, actions: [ { - component: "Button" - } + component: "Button", + }, ], - addTo: "medications" + addTo: "medications", }, medications: { "ui:field": "table", "ui:options": { - label: false + label: false, }, classNames: "col-md-12", table: { @@ -29,7 +29,7 @@ export default { tableCols: [ { dataField: "drugId", - hidden: true + hidden: true, }, { dataField: "drugName", @@ -41,202 +41,204 @@ export default { { DrugId: 471154, DrugName: - "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit" + "AmLactin Distribution Pack (pramoxine) 1 %-12 % topical kit", }, { DrugId: 471211, - DrugName: "AmLactin Distribution Pack 12 %-12 % topical kit" + DrugName: + "AmLactin Distribution Pack 12 %-12 % topical kit", }, { DrugId: 237930, - DrugName: "ceftibuten 180 mg/5 mL oral suspension" + DrugName: "ceftibuten 180 mg/5 mL oral suspension", }, { DrugId: 195800, - DrugName: "ceftibuten 400 mg capsule" + DrugName: "ceftibuten 400 mg capsule", }, { DrugId: 445980, - DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension" + DrugName: "Child Ibuprofen 100 mg/5 mL oral suspension", }, { DrugId: 273242, DrugName: - "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension" + "Children's Ibu-Drops 50 mg/1.25 mL oral drops,suspension", }, { DrugId: 436727, - DrugName: "Children's Ibuprofen 100 mg/5 mL oral suspension" + DrugName: + "Children's Ibuprofen 100 mg/5 mL oral suspension", }, { DrugId: 557123, - DrugName: "Comfort Pac-Ibuprofen 800 mg kit" + DrugName: "Comfort Pac-Ibuprofen 800 mg kit", }, { DrugId: 219132, - DrugName: "dibucaine 1 % topical ointment" + DrugName: "dibucaine 1 % topical ointment", }, { DrugId: 292795, - DrugName: "dibucaine HCl (bulk) 100 % powder" + DrugName: "dibucaine HCl (bulk) 100 % powder", }, { DrugId: 554201, - DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet" + DrugName: "hydrocodone 10 mg-ibuprofen 200 mg tablet", }, { DrugId: 469644, - DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet" + DrugName: "hydrocodone 5 mg-ibuprofen 200 mg tablet", }, { DrugId: 156812, - DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet" + DrugName: "hydrocodone 7.5 mg-ibuprofen 200 mg tablet", }, { DrugId: 290029, - DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension" + DrugName: "Ibu-Drops 50 mg/1.25 mL oral drops,suspension", }, { DrugId: 554209, DrugName: "Ibudone 10 mg-200 mg tablet" }, { DrugId: 554208, - DrugName: "Ibudone 5 mg-200 mg tablet" + DrugName: "Ibudone 5 mg-200 mg tablet", }, { DrugId: 227645, DrugName: "ibuprofen (bulk) 100 % powder" }, { DrugId: 298404, - DrugName: "ibuprofen 100 mg chewable tablet" + DrugName: "ibuprofen 100 mg chewable tablet", }, { DrugId: 234997, DrugName: "ibuprofen 100 mg tablet" }, { DrugId: 278995, - DrugName: "ibuprofen 100 mg/5 mL oral suspension" + DrugName: "ibuprofen 100 mg/5 mL oral suspension", }, { DrugId: 182478, DrugName: "ibuprofen 200 mg capsule" }, { DrugId: 256217, - DrugName: "ibuprofen 200 mg tablet" + DrugName: "ibuprofen 200 mg tablet", }, { DrugId: 250621, DrugName: "ibuprofen 400 mg tablet" }, { DrugId: 237650, - DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension" + DrugName: "ibuprofen 50 mg/1.25 mL oral drops,suspension", }, { DrugId: 275877, DrugName: "ibuprofen 600 mg tablet" }, { DrugId: 173420, - DrugName: "ibuprofen 800 mg tablet" + DrugName: "ibuprofen 800 mg tablet", }, { DrugId: 449425, DrugName: - "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet" + "Ibuprofen Cold-Sinus (with pseudoephedrine) 30 mg-200 mg tablet", }, { DrugId: 472085, - DrugName: "Ibuprofen IB 100 mg chewable tablet" + DrugName: "Ibuprofen IB 100 mg chewable tablet", }, { DrugId: 281309, - DrugName: "Ibuprofen IB 200 mg tablet" + DrugName: "Ibuprofen IB 200 mg tablet", }, { DrugId: 471498, - DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet" + DrugName: "Ibuprofen Jr Strength 100 mg chewable tablet", }, { DrugId: 545552, DrugName: - "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution" + "ibuprofen lysine (PF) 20 mg/2 mL intravenous solution", }, { DrugId: 581894, - DrugName: "Ibuprofen PM 200 mg-25 mg capsule" + DrugName: "Ibuprofen PM 200 mg-25 mg capsule", }, { DrugId: 557264, - DrugName: "Ibuprofen PM 200 mg-38 mg tablet" + DrugName: "Ibuprofen PM 200 mg-38 mg tablet", }, { DrugId: 550378, DrugName: - "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet" + "ibuprofen-diphenhydramine citrate 200 mg-38 mg tablet", }, { DrugId: 472620, - DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet" + DrugName: "ibuprofen-oxycodone 400 mg-5 mg tablet", }, { DrugId: 281153, DrugName: - "ibutilide fumarate 0.1 mg/mL intravenous solution" + "ibutilide fumarate 0.1 mg/mL intravenous solution", }, { DrugId: 449511, DrugName: - "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension" + "Infant's Ibuprofen 50 mg/1.25 mL oral drops,suspension", }, { DrugId: 472123, DrugName: - "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension" + "Infants Ibu-Drops 50 mg/1.25 mL oral drops,suspension", }, { DrugId: 454370, - DrugName: "squaric acid dibutylest.(bulk) 100 % liquid" + DrugName: "squaric acid dibutylest.(bulk) 100 % liquid", }, { DrugId: 185726, - DrugName: "squaric acid dibutylester powder" - } + DrugName: "squaric acid dibutylester powder", + }, ], mapping: { drugName: "DrugName", - drugId: "DrugId" + drugId: "DrugId", }, minLength: 2, labelKey: "DrugName", bodyContainer: true, - cleanAfterSelection: true - } - } + cleanAfterSelection: true, + }, + }, }, { dataField: "allergyReaction", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1" + editColumnClassName: "col-md-1", }, { dataField: "dosage", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1" + editColumnClassName: "col-md-1", }, { dataField: "quantity", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - enableHelpText: true + enableHelpText: true, }, { dataField: "unit", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - enableHelpText: true + enableHelpText: true, }, { dataField: "refills", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1" + editColumnClassName: "col-md-1", }, { dataField: "useGeneric", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1" + editColumnClassName: "col-md-1", }, { dataField: "startDate", @@ -247,17 +249,17 @@ export default { placeholder: "MM/DD/YYYY", inputProps: { className: "form-control", - type: "text" - } - } + type: "text", + }, + }, }, - defaultCurrentDate: true + defaultCurrentDate: true, }, { - dataField: "isSelected" + dataField: "isSelected", // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , - } + }, ], tableConfig: { // row, added by manually by external action @@ -265,21 +267,21 @@ export default { mandatoryField: ["description"], action: { updateClassNames: { - // Upadting Class Names for the custom rows + // Upadating Class Names for the custom rows classToAdd: { classNameToAdd: "disableEdit", - columnsToAdd: ["drugName"] + columnsToAdd: ["drugName"], }, classToDelete: { classNameToDelete: "DeleteClass", - columnsToDelete: [] + columnsToDelete: [], }, validate: { - field: "isCustomRow" - } - } - } - } + field: "isCustomRow", + }, + }, + }, + }, }, rightActions: [ { @@ -295,28 +297,29 @@ export default { actionCompletedIcon: "glyphicon glyphicon-refresh", actionCompletedClassName: "deleted-row", mandatoryField: ["drugName"], + }, }, { action: "moveup", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - icon: "glyphicon glyphicon-arrow-up" + icon: "glyphicon glyphicon-arrow-up", }, { action: "movedown", className: "col-md-1", columnClassName: "col-md-1", editColumnClassName: "col-md-1", - icon: "glyphicon glyphicon-arrow-down" - } - ] - } + icon: "glyphicon glyphicon-arrow-down", + }, + ], + }, }, medications_no_active: { classNames: "col-md-6", - nav: ["medications"] - } + nav: ["medications"], + }, }, allergyData: { classNames: "col-md-12", @@ -324,10 +327,10 @@ export default { "ui:order": ["noKnownAllergies", "noKnownDrugAllergies", "allergies"], "ui:field": "collapsible", noKnownAllergies: { - classNames: "col-md-6" + classNames: "col-md-6", }, noKnownDrugAllergies: { - classNames: "col-md-6" + classNames: "col-md-6", }, allergies: { classNames: "col-md-12", @@ -336,11 +339,11 @@ export default { tableCols: [ { dataField: "allergyId", - hidden: true + hidden: true, }, { dataField: "allergyName", - enableHelpText: true + enableHelpText: true, // hidden : true, // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , @@ -349,16 +352,16 @@ export default { dataField: "allergyReaction", className: "col-md-1", columnClassName: "col-md-1", - editColumnClassName: "col-md-1" + editColumnClassName: "col-md-1", }, { - dataField: "isSelected" + dataField: "isSelected", // hidden : true, // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , }, { - dataField: "allergyActive" + dataField: "allergyActive", // hidden : true, // filter : { type: 'SelectFilter', options: {true : 'Active', false : 'InActive'}, defaultValue: true } , }, @@ -375,12 +378,12 @@ export default { optionsPath: "Allergies", mapping: { allergyId: "AllergyId", - allergyName: "AllergyName" + allergyName: "AllergyName", }, - labelKey: "AllergyName" - } - } - } + labelKey: "AllergyName", + }, + }, + }, ], focusOnAdd: 1, rightActions: [ @@ -389,22 +392,22 @@ export default { className: "table-action", columnClassName: "table-action", editColumnClassName: "table-action", - icon: "glyphicons glyphicons-remove-circle glyPhiconRedColor" - } - ] - } + icon: "glyphicons glyphicons-remove-circle glyPhiconRedColor", + }, + ], + }, }, "ui:options": { - label: false + label: false, }, collapse: { field: "ObjectField", collapsed: false, icon: { - add: "glyphicon glyphicon-plus-sign glyPhiconGreen" + add: "glyphicon glyphicon-plus-sign glyPhiconGreen", }, actions: [], - addTo: "allergies" - } - } + addTo: "allergies", + }, + }, }; diff --git a/src/table/columnHeadersFactory.js b/src/table/columnHeadersFactory.js index 8168bac..b962d1f 100644 --- a/src/table/columnHeadersFactory.js +++ b/src/table/columnHeadersFactory.js @@ -7,7 +7,6 @@ const toColumnClassNames = (fieldProp, fieldUIProp, customRowConfiguration) => { fieldProp.type === "string" && Object.keys(customRowConfiguration).length > 0 ) { - console.log("CHECK"); let classNameAdd = false; let fieldToValidate = false; Object.keys(customRowConfiguration.action).map(function(action) { @@ -67,13 +66,10 @@ const toDataFormat = (fieldProp, fieldUIProp, defaultFilterKey) => {
+ style={{ textAlign: "right" }}>
); @@ -103,46 +99,42 @@ const toEditable = fieldProp => { }); return { type: "select", - options: { values } + options: { values }, }; } else { return { type: "select", - options: { values: fieldProp.enum } + options: { values: fieldProp.enum }, }; } } else if (fieldProp.type === "boolean") { return { - type: "checkbox" + type: "checkbox", }; } else if (fieldProp.format === "date-time") { return { - type: "datetime-local" + type: "datetime-local", }; } else if (fieldProp.format === "date") { return { - type: "date" + type: "date", }; } else if (fieldProp.format === "time") { return { - type: "time" + type: "time", }; } else if (fieldProp.type === "number") { return { - type: "number" + type: "number", }; } return true; }; const columnHeadersFromSchema = (schema, uiSchema) => { - let { - items: { properties, defaultFilterKey = false } - } = schema; + let { items: { properties, defaultFilterKey = false } } = schema; - let { - table: { tableCols, tableConfig = {} } - } = uiSchema; + let { table: { tableCols, tableConfig = {} } } = uiSchema; let schemaCols = Object.keys(properties).map(dataField => { let { title } = properties[dataField]; let editable = toEditable(properties[dataField]); @@ -174,7 +166,7 @@ const columnHeadersFromSchema = (schema, uiSchema) => { dataFormat, dataAlign, columnTitle, - columnClassName + columnClassName, }; }); return schemaCols; @@ -231,7 +223,7 @@ const overrideColEditable = (colConf, fieldSchema, fields) => { uiSchema={fieldUISchema} onChange={onUpdate} /> - ) + ), }; } }; @@ -287,7 +279,7 @@ const setColumnCSSIfMissing = (col, css) => { let { className = css, columnClassName = css, - editColumnClassName = css + editColumnClassName = css, } = col; Object.assign(col, { className, columnClassName, editColumnClassName }); }; From 25dc76738d8de64263f0bb87a263481efd537e89 Mon Sep 17 00:00:00 2001 From: Samip Date: Tue, 21 Aug 2018 15:32:47 -0400 Subject: [PATCH 221/297] Updating version to 0.9.27 --- package.json | 2 +- src/ReactDatePicker.js | 29 +++++++++++------------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 50d25fe..bebe1c3 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.26", + "version": "0.9.27", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", diff --git a/src/ReactDatePicker.js b/src/ReactDatePicker.js index 246cfbb..e728fa7 100644 --- a/src/ReactDatePicker.js +++ b/src/ReactDatePicker.js @@ -66,12 +66,9 @@ export default class ReactDatePicker extends Component { super(props); this.handleYearMonthChange = this.handleYearMonthChange.bind(this); this.state = { - month: fromMonth + month: fromMonth, }; - let { - schema: { format = "date-time" }, - formData - } = props; + let { schema: { format = "date-time" }, formData } = props; this.day = formData ? format === "date" ? new Date(formData).toISOString().substr(0, 10) @@ -109,17 +106,13 @@ export default class ReactDatePicker extends Component { handleBlur = () => { let { - uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {} //eslint-disable-line + uiSchema: { rdp: { updateDelay = DEFAULT_UPDATE_DELAY } = {} } = {}, //eslint-disable-line } = this.props; }; notifyChange = () => { let day = this.day; - let { - schema: { format = "date-time" }, - onChange, - formData - } = this.props; + let { schema: { format = "date-time" }, onChange, formData } = this.props; let event = normalizeDay(day, format); if (event !== formData && event != undefined) { onChange(event); @@ -138,7 +131,7 @@ export default class ReactDatePicker extends Component { let { uiSchema = {}, formData, - schema: { format = "date-time" } + schema: { format = "date-time" }, } = this.props; const dayPickerProps = { month: this.state.month, @@ -151,8 +144,8 @@ export default class ReactDatePicker extends Component { ), inputProps: { className: "form-control", - type: "text" - } + type: "text", + }, }; formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date let { rdp = {}, defaultCurrentDate = false } = uiSchema; @@ -173,8 +166,8 @@ export default class ReactDatePicker extends Component { inputProps: { className: "form-control", type: "text", - autoFocus: uiSchema["ui:autofocus"] - } + autoFocus: uiSchema["ui:autofocus"], + }, }, rdp ); @@ -195,6 +188,6 @@ export default class ReactDatePicker extends Component { ReactDatePicker.propTypes = { schema: PropTypes.shape({ - format: PropTypes.oneOf(["date-time", "date"]) - }) + format: PropTypes.oneOf(["date-time", "date"]), + }), }; From 27cdfb16a05a4a83e1a19307066c6d6e54aa5813 Mon Sep 17 00:00:00 2001 From: Samip Date: Tue, 21 Aug 2018 15:34:19 -0400 Subject: [PATCH 222/297] 0.9.28 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3ac76b..e11d855 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.24", + "version": "0.9.28", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bebe1c3..18665b3 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.27", + "version": "0.9.28", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From f9a9f42f037f5127b583f164a80c9e57f660739f Mon Sep 17 00:00:00 2001 From: Samip Date: Tue, 25 Sep 2018 16:56:07 -0400 Subject: [PATCH 223/297] Added default spellchecker in draftRte --- src/DraftRte.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/DraftRte.js b/src/DraftRte.js index db6cece..fc828d1 100644 --- a/src/DraftRte.js +++ b/src/DraftRte.js @@ -116,6 +116,7 @@ export default class DraftRTE extends Component { onEditorStateChange={this.onEditorStateChange} onBlur={this.handleBlur} editorRef={this.setEditorReference} + spellCheck={true} handlePastedText={() => false} {...draftRte} /> From 9addfc4c5bd11d7b46c83459f324efc8afb3a7ba Mon Sep 17 00:00:00 2001 From: Samip Date: Tue, 25 Sep 2018 16:58:17 -0400 Subject: [PATCH 224/297] 0.9.29 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index e11d855..658fb8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-jsonschema-form-extras", - "version": "0.9.28", + "version": "0.9.29", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 18665b3..0e13769 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Extra widgets for Mozilla's react-jsonschema-form", "private": false, "author": "mavarazy@gmail.com", - "version": "0.9.28", + "version": "0.9.29", "scripts": { "build:lib": "rimraf lib && cross-env NODE_ENV=production babel -d lib/ src/", "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config webpack.config.dist.js --optimize-minimize", From d3bcd5e6bcbcadb26bda3944b47a94c6879a0aa2 Mon Sep 17 00:00:00 2001 From: yusuff Date: Wed, 19 Dec 2018 08:16:42 -0800 Subject: [PATCH 225/297] Update defaultCurrentDate , getting the config from UiSchema and Update --- src/ReactDatePicker.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/ReactDatePicker.js b/src/ReactDatePicker.js index 246cfbb..7f3c97b 100644 --- a/src/ReactDatePicker.js +++ b/src/ReactDatePicker.js @@ -68,10 +68,7 @@ export default class ReactDatePicker extends Component { this.state = { month: fromMonth }; - let { - schema: { format = "date-time" }, - formData - } = props; + let { schema: { format = "date-time" }, formData } = props; this.day = formData ? format === "date" ? new Date(formData).toISOString().substr(0, 10) @@ -115,11 +112,7 @@ export default class ReactDatePicker extends Component { notifyChange = () => { let day = this.day; - let { - schema: { format = "date-time" }, - onChange, - formData - } = this.props; + let { schema: { format = "date-time" }, onChange, formData } = this.props; let event = normalizeDay(day, format); if (event !== formData && event != undefined) { onChange(event); @@ -154,8 +147,9 @@ export default class ReactDatePicker extends Component { type: "text" } }; - formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date let { rdp = {}, defaultCurrentDate = false } = uiSchema; + + formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date let dayPickerInputProps = Object.assign( { onDayChange: this.handleDayChange, @@ -179,7 +173,6 @@ export default class ReactDatePicker extends Component { rdp ); dayPickerInputProps.inputProps.onBlur = this.handleBlur; - formData = loadFormatedDate(formData, defaultCurrentDate); // to load the formated date return (
From 05c07034ffdae2e34cab23c58e7b4c9842e84bfc Mon Sep 17 00:00:00 2001 From: Samip Date: Thu, 3 Jan 2019 17:21:45 -0500 Subject: [PATCH 226/297] Fixed issues with typeahead #100, #91 --- playground/app/asyncTypeahead/index.js | 45 +++++++++++- src/Label.js | 4 +- src/TypeaheadField.js | 97 ++++++++++++++++++++------ src/utils.js | 4 ++ 4 files changed, 125 insertions(+), 25 deletions(-) diff --git a/playground/app/asyncTypeahead/index.js b/playground/app/asyncTypeahead/index.js index 78f3d62..9f6703f 100644 --- a/playground/app/asyncTypeahead/index.js +++ b/playground/app/asyncTypeahead/index.js @@ -2,7 +2,7 @@ const schema = { type: "object", properties: { user: { - type: "String", + type: "string", title: "Async Use Case", }, }, @@ -13,10 +13,49 @@ const uiSchema = { "ui:field": "asyncTypeahead", asyncTypeahead: { url: "https://jsonplaceholder.typicode.com/users", - minLength: 1, - labelKey: "username", + minLength: 0, + labelKey: "email", + mapping: "email" + }, }, }; + +// const schema = { +// title: "Tests ", +// type: "object", +// properties: { +// field: { type: "string", title: "Field" } +// } +// }; + +// const uiSchema = { +// field: { +// classNames: "col-md-4", +// "ui:field": "typeahead", +// typeahead: { +// allowNew: true, +// minLength: 0, +// options: [ +// { +// label: "somethinghere", +// id: "1" +// }, +// { +// label: "sdfasf sdfsdafsdf", +// id: "2" +// }, +// { +// label: "hola ssa", +// id: "3" +// } +// ], +// labelKey: "label", +// mapping: 'id', +// } +// } +// } + + export default { schema, uiSchema }; diff --git a/src/Label.js b/src/Label.js index cb79b5a..a766909 100644 --- a/src/Label.js +++ b/src/Label.js @@ -33,7 +33,7 @@ export function DefaultLabel({ formContext, }) { const uiOptions = getUiOptions(uiSchema); - let { label: displayLabel = true } = uiOptions; + let { label: displayLabel = true, forceLabelDisplay } = uiOptions; if (schema.type === "array") { displayLabel = isMultiSelect(schema, definitions) || @@ -51,7 +51,7 @@ export function DefaultLabel({ const { DescriptionField = DefaultDescriptionField } = fields; - if (displayLabel) { + if (displayLabel || forceLabelDisplay) { return [