From b3dcc5ec43a3aa19f6d7e2f29183ff66a9d80237 Mon Sep 17 00:00:00 2001 From: Anne Kainic Date: Mon, 20 Aug 2018 16:07:01 -0400 Subject: [PATCH] Release 1.1.0 (#216) * Relative links will be the end of me * Relative links to definitions directory * Two more * Add links to docs and starter app, tighten up other copy * Significantly faster cc @annekainicUSDS * Add a consoleSubmit option for debugging output (#153) * Add a consoleSubmit option for debugging output Fixes #135 * Use pre-push hook to ensure build artifacts are up to date (#151) Fixes #97 * Add docs for creating a simple form (#149) * Add docs for creating a simple form * Fix link (#157) * [WIP] Add placeholder topic for available components (#154) * Add placeholder topic for available components * Additional changes after discussion with @dmethvin-gov and @fatimanoorva * Add a consoleSubmit option for debugging output (#153) * Add a consoleSubmit option for debugging output Fixes #135 * Use pre-push hook to ensure build artifacts are up to date (#151) Fixes #97 * Add docs for creating a simple form (#149) * Add docs for creating a simple form * Add some code examples and explanations on components * Better headings * Revert "Better headings" This reverts commit 66f40ae74b7af3ce0271b6ad10ee33a91fa03f7f. * Apply Dave's changes again because Git is hard * Big reorg * Add placeholder topic for available components * fixes few relative links * add "contributing to this project" section include: links to code of conduct, CONTRIBUTING.md, and instructions on how to join the forms listserv * Update shortdesc * More line breaks :weary: * A bit more elaboration courtesy of Anne * Field component props and what they do * Clarify the purpose of this description once and for all * Clarify this weird point * What are "they"? * Links back to README, fix markdown * Better headings * Add these links * Add a hopefully better description of the keepInPageOnReview property * Keep consistent with "review page" * Use Anne's language, needs clarification on the second sentence * Introduction component * Form footer * Prgoress bar * Title and subtitle * Update mini-toc with new combined section header * For example * Date fields * Hidden contextual information - needs info on how to specify cc @dmethvin-gov * Radio Button and Checkbox Group - needs a code sample cc @dmethvin-gov * Password usage guidelines - what do we want to say about this? * Just kidding, the previous commit was for required fields, this one's for password * Duplicate field validation * Conditional form fields * Small reword * Add widget descriptions (#166) * Complete table with widget information * Add more description for some components * Add usage info for error messages * Edits from review * Remove password description * Make review edits * Add remaining descriptions (#174) * Add remaining descriptions * Make updates from review * Update language * Refactor from review comments * Remove one word * Rename components topic * Remove hidden contextual information cc #173 * Minor cleanup * Set the property to `true` * Create the new individual files * Move content, turn table rows into sections for linking * Move content * Add more descriptions for widgets * Rename to "Available" rather than "Common" * Edits from @dmethvin-gov * Fix link to docs (#181) * Widget links as appropriate * Add guidance on using widgets * currencyUI * This is guidance for adding widgets, the previous commit was for definitions * Combine info more coherently * Remove less specific information * Definitions for widgets and... definitions * More verbose explanation of the example * Remove AddressField per @annekainicusds * Improve content on the form config (#186) * Separate out advanced information on how the form config works, and create new content at a beginner level for basic information you need to know about creating a form config * Move to new customization map * Update links after move * Rename new conceptual topic * Rename map * Update main README after renames and moves * Rename again * Copy edits * Update shortdesc cc @annekainicusds * Remove these sections * Not "our" * Small fixes * Fix misspelling * H1 header * Fake breadcrumbs * relative link * :weary: * Once more * Two dots * Map topic readme links * Relative links for every breadcrumb * Topic links * Add folder name * This is broken * Fix links * All these commits are going to have the same commit message * Add folder * Once more * All breadcrumbs * Small link fixes here * Fix relative link? * Remove directory * Add markdown extension * Relative link * One more level * All small fixes for "Building a form" * Small updates for "Customizing the library" * Add react * Lots of hardcoded links * Remove containing directory * Line link doesn't work * Not plural * Markdown extension * MARKDOWN EXTENSION * Fix the example for conditionally hiding fields (#183) This is simplified from the big form I'm building. * More detail on use of definitions (#188) * [WIP] More detail on use of definitions * Fix imports; further updates * Add autosuggest section * Add missing expandable group styles (#192) * Add basic tutorial (#194) * Add basic tutorial * Fix language * Add Dave's suggestions * Add Sheri's suggestions * More edits from Sheri * Edit images * Small edits * No apostrophe (#197) * Don't show back button on first page (#195) Routes in `pageList` mocks now reflect the way they really look, using a leading slash. Also cleans up FormPage/ReviewPage unit tests which had remnants of vets.gov user login. Fixes #177 * TOC at the top of the tutorial * Minor cleanup * Add readme links * Minor cleanup of review section * Add breadcrumbs * Add content to question issue template * Clarify a couple of questions * Typos * Do not filter out properties on inactive pages that also appear on active pages (#155) * Add functionality to not filter out properties on inactive pages that also appear on active pages Refactor Refactor Remove duplicate properties from array Return properties * Write unit tests for new functionality * Refactor from code review * Change _.uniq to only be called once * Run build on latest changes * Clean up and dry out the FormPage unit tests (#202) * Update node-sass to remove the node-gyp vuln (#213) * 1.1.0 * Fix merge conflict --- .github/ISSUE_TEMPLATE/Questions.md | 9 + README.md | 29 +- docs/README.md | 13 +- docs/building-a-form/README.md | 24 +- .../about-the-schema-and-uischema-objects.md | 244 + .../about-the-us-forms-system-library.md | 300 -- .../adding-widgets-and-definitions.md | 208 - ...able-form-features-and-usage-guidelines.md | 432 ++ docs/building-a-form/available-widgets.md | 116 + docs/building-a-form/common-definitions.md | 269 ++ .../common-patterns-for-building-forms.md | 92 +- .../creating-a-form-config-file.md | 295 +- .../quick-start-example-formjs-file.md | 110 + docs/customizing-the-library/README.md | 13 + .../about-the-react-component-hierarchy.md | 174 + .../creating-custom-fields-and-widgets.md | 61 + docs/getting-started/README.md | 8 +- ...on-with-the-us-forms-system-starter-app.md | 10 +- ...forms-system-in-an-existing-application.md | 4 +- ...etting-started-with-the-us-forms-system.md | 4 +- docs/getting-started/tutorial.md | 354 ++ docs/images/blank-page.png | Bin 0 -> 46542 bytes docs/images/cities-in-dropdown.png | Bin 0 -> 58338 bytes docs/images/helpful-error-message.png | Bin 0 -> 31699 bytes docs/images/state-dropdown.png | Bin 0 -> 83541 bytes docs/images/street-and-city.png | Bin 0 -> 66471 bytes docs/images/street-field.png | Bin 0 -> 53241 bytes docs/images/zip-pattern-error.png | Bin 0 -> 28018 bytes lib/css/styles.css | 57 + lib/css/styles.css.map | 2 +- lib/js/containers/FormPage.js | 5 +- lib/js/containers/FormPage.js.map | 2 +- lib/js/helpers.js | 48 +- lib/js/helpers.js.map | 2 +- package-lock.json | 4089 ++++++++--------- package.json | 6 +- src/js/containers/FormPage.jsx | 14 +- src/js/helpers.js | 29 +- src/scss/modules/_m-form-elements.scss | 78 + test/js/containers/FormPage.unit.spec.jsx | 354 +- test/js/helpers.unit.spec.js | 61 +- test/js/review/ReviewPage.unit.spec.jsx | 10 - 42 files changed, 4260 insertions(+), 3266 deletions(-) create mode 100644 docs/building-a-form/about-the-schema-and-uischema-objects.md delete mode 100644 docs/building-a-form/about-the-us-forms-system-library.md delete mode 100644 docs/building-a-form/adding-widgets-and-definitions.md create mode 100644 docs/building-a-form/available-form-features-and-usage-guidelines.md create mode 100644 docs/building-a-form/available-widgets.md create mode 100644 docs/building-a-form/common-definitions.md create mode 100644 docs/building-a-form/quick-start-example-formjs-file.md create mode 100644 docs/customizing-the-library/README.md create mode 100644 docs/customizing-the-library/about-the-react-component-hierarchy.md create mode 100644 docs/customizing-the-library/creating-custom-fields-and-widgets.md create mode 100644 docs/getting-started/tutorial.md create mode 100644 docs/images/blank-page.png create mode 100644 docs/images/cities-in-dropdown.png create mode 100644 docs/images/helpful-error-message.png create mode 100644 docs/images/state-dropdown.png create mode 100644 docs/images/street-and-city.png create mode 100644 docs/images/street-field.png create mode 100644 docs/images/zip-pattern-error.png diff --git a/.github/ISSUE_TEMPLATE/Questions.md b/.github/ISSUE_TEMPLATE/Questions.md index a532003..c85f2be 100644 --- a/.github/ISSUE_TEMPLATE/Questions.md +++ b/.github/ISSUE_TEMPLATE/Questions.md @@ -4,4 +4,13 @@ about: Ask questions about the library --- +Learn more about how your form project could leverage the US Forms System. To help all of us use our time most efficiently: +- **What is the scope of your project?** +- **What are you using/planning on using to build your form? Provide a link to a repository if you have one!** +- **How complex is your form?** +- **Have you reviewed the [US Forms System Documentation](https://github.com/usds/us-forms-system/blob/master/docs/README.md)?** +- **Have you tried prototyping your form with the US Forms System?** +- **Are you/will you be working with a designer or information architect?** + +*If you have another question, delete the text above and ask here!* diff --git a/README.md b/README.md index ee4deae..d9dc509 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,32 @@ # U.S. Forms System +The US Forms System is an open source library and set of guiding principles for building complex web-based forms using [React](https://reactjs.org), the [JSON Schema standard](http://json-schema.org/), and the [US Web Design System](https://designsystem.digital.gov/). + ***THIS IS A WORK IN PROGRESS.*** -Modelled after the [US Web Design System](https://designsystem.digital.gov/), this project creates an open source code library and set of guiding principles for building complex web-based forms significantly faster than existing methods, using best practices in user experience and data collection, validation, and transmission. +### About this project + +Inspired by Mozilla's [react-jsonschema-form](https://github.com/mozilla-services/react-jsonschema-form) library, the US Forms System is specifically intended for consistently styled governmental web-based forms. This library enables you to describe form fields in a JSON Schema configuration file, which then renders the backing React components necessary to build your form. You'll build forms significantly faster than existing methods, and benefit from the US Web Design System's best practices in user experience and data collection, validation, and transmission. + +### Using the library + +For information about setting up and using the US Forms System, see the *[US Forms System Documentation](./docs/README.md)*. + +Additionally, the [US Forms System Starter App](https://github.com/usds/us-forms-system-starter-app) provides the basic files and configuration needed to get started building a form using the US Forms System. + +### Contributing to this project: + +Please read our [Code of Conduct](https://github.com/usds/us-forms-system/blob/master/CODE_OF_CONDUCT.md) and [CONTRIBUTING.md](https://github.com/usds/us-forms-system/blob/master/CONTRIBUTING.md) for more details. + +#### Join the contributor mailing list: + +To receive regular updates about this project, please join our mailing list by sending an email to forms-subscribe-request@listserv.gsa.gov. -This library enables you to build web-based forms using [React](https://reactjs.org) and the [JSON Schema standard](http://json-schema.org/). Instead of building and configuring your React components from scratch, use this library and guidance to describe the form fields in a JSON Schema configuration file, which will then render the backing React components necessary to build your form. +#### Contact the project team: -Originally inspired by Mozilla's [react-jsonschema-form](https://github.com/mozilla-services/react-jsonschema-form) library, we've created a version specific build web-based forms for government, styled using the [U.S. Web Design System](https://designsystem.digital.gov/) for a consistent look and feel across government. +If you want to directly contact the project team, you can send your questions to forms@lists.usds.gov. ---- +### More project artifacts -We'll be documenting our roadmap, research, and process in [the wiki](https://github.com/usds/us-forms-system/wiki) as work on getting the code library ready. Feel free to look around [our wiki](https://github.com/usds/us-forms-system/wiki) and [our project board](https://github.com/orgs/usds/projects/3) if you want to follow along with our progress. That's also where developer documentation and best practices guidance for forms design and development will be found as it comes together. +- Roadmap, research, and process: [US Forms System Wiki](https://github.com/usds/us-forms-system/wiki) +- Project progress: [US Forms System Project Board](https://github.com/orgs/usds/projects/3) diff --git a/docs/README.md b/docs/README.md index 305aed5..8852c2a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,11 +1,18 @@ # US Forms System Documentation -- [Getting started with the Forms System Library](getting-started/README.md) +- [Getting started with the US Forms System](getting-started/README.md) - [Tools for getting started with the US Forms System](getting-started/tools-for-getting-started-with-the-us-forms-system.md) - [Creating a new application with the US Forms System Starter App](getting-started/creating-a-new-application-with-the-us-forms-system-starter-app.md) + - [Tutorial: Building a simple address form](getting-started/tutorial.md) - [Installing the US Forms System in an existing application](getting-started/installing-the-us-forms-system-in-an-existing-application.md) - [Building a form](building-a-form/README.md) - - [About the US Forms System library](building-a-form/about-the-us-forms-system-library.md) + - [About the `schema` and `uiSchema` objects](building-a-form/about-the-schema-and-uischema-objects.md) + - [Quick Start: Example `form.js` file](building-a-form/quick-start-example-formjs-file.md) - [Creating a form config file](building-a-form/creating-a-form-config-file.md) - - [Adding widgets and definitions](building-a-form/adding-widgets-and-definitions.md) + - [Available form features and usage guidelines](building-a-form/available-form-features-and-usage-guidelines.md) + - [Available widgets](building-a-form/available-widgets.md) + - [Common definitions](building-a-form/common-definitions.md) - [Common patterns for building forms](building-a-form/common-patterns-for-building-forms.md) +- [Customizing the library](customizing-the-library/README.md) + - [About the React component hierarchy](customizing-the-library/about-the-react-component-hierarchy.md) + - [Creating custom fields and widgets](customizing-the-library/creating-custom-fields-and-widgets.md) diff --git a/docs/building-a-form/README.md b/docs/building-a-form/README.md index c243104..5bde88e 100644 --- a/docs/building-a-form/README.md +++ b/docs/building-a-form/README.md @@ -1,19 +1,33 @@ +:book: [*US Forms System Documentation*](../README.md) + # Building a form -### [About the US Forms System library](about-the-us-forms-system-library.md) +### [About the `schema` and `uiSchema` objects](about-the-schema-and-uischema-objects.md) + +The US Forms System lets you build web-based forms using the JSON Schema standard for form data and React for the form UI. The form data and UI are represented by `schema` and `uiSchema` objects, respectively, which are included in the form configuration file. -The US Forms System lets you build web-based forms using React and the JSON Schema standard. +### [Quick Start: Example `form.js` file](quick-start-example-formjs-file.md) + +Use this example `form.js` file to build a basic form. ### [Creating a form config file](creating-a-form-config-file.md) Your form is generated from a `form.js` file, along with a few other key configuration files. -### [Adding widgets and definitions](adding-widgets-and-definitions.md) +### [Available form features and usage guidelines](available-form-features-and-usage-guidelines.md) + +These form features are available in the US Forms System library. We've provided information about how to implement them in your form. + +### [Available widgets](available-widgets.md) + +Widgets are React components that return specific HTML form elements. Set these widgets in a config file while building your form. + +### [Common definitions](common-definitions.md) -There are many common fields and widgets you can use to build forms. There are common types of definitions: `schema`/`uiSchema` objects and functions that return `schema`/`uiSchema` objects. +Definitions are pieces of the form config that can be dropped in to represent specific types of questions. Most often used in `uiSchema`, definitions include features such as label text, validation functions, error messages, and rules for which widget to render. ### [Common patterns for building forms](common-patterns-for-building-forms.md) Some forms require custom validation, styles, or conditional information based on user input. Use these patterns to address those needs. -[Back to *US Forms System Documentation*](docs/README.md) +[Back to *US Forms System Documentation*](../README.md) diff --git a/docs/building-a-form/about-the-schema-and-uischema-objects.md b/docs/building-a-form/about-the-schema-and-uischema-objects.md new file mode 100644 index 0000000..c540fb8 --- /dev/null +++ b/docs/building-a-form/about-the-schema-and-uischema-objects.md @@ -0,0 +1,244 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) + +# About the `schema` and `uiSchema` objects + +The US Forms System lets you build web-based forms using the JSON Schema standard for form data and React for the form UI. The form data and UI are represented by `schema` and `uiSchema` objects, respectively, which are included in the form configuration file. + +- [Understanding the `schema` object](#understanding-the-schema-object) + - [Describing object fields and arrays](#describing-object-fields-and-arrays) +- [Understanding the `uiSchema` object](#understanding-the-uischema-object) + - [Configuring `uiSchema` using rjsf options](#configuring-uischema-using-rjsf-options) + - [Configuring `uiSchema` using US Form System options](#configuring-uischema-using-us-forms-system-options) + +### Understanding the `schema` object + +The JSON Schema standard describes the allowed shape of JSON objects. Using a `schema` object, a JSON schema provides information about structured JSON data. For more information about the JSON Schema Standard, see [Understanding JSON Schema](https://spacetelescope.github.io/understanding-json-schema/). + +For JSON Schema validator libraries, the US Forms System uses [ajv](https://www.npmjs.com/package/ajv) for unit tests and [jsonschema](https://www.npmjs.com/package/jsonschema) in the us-forms-system code. + +##### Describing object fields and arrays + +This example describes a JSON document that is an object with one property called `myField`, which is a number, meaning `{ myField: 2 }` would be valid: + +``` +{ + type: 'object', + properties: { + myField: { + type: 'number' + } + } +} +``` + +However, `{}` is also valid. To require a property in an object, use the `required` property, which takes an array of property names passed as strings. As in this example, `required` is always on the object that contains the field, not the field itself: + +``` +{ + type: 'object', + required: ['myField'], + properties: { + myField: { + type: 'number' + } + } +} +``` + +Arrays work similarly to objects. This example describes an array of boolean values: `[true, false, true]`. Items can be an object schema or any other type of schema as well: + +``` +{ + type: 'array', + items: { + type: 'boolean' + } +} +``` + +### Understanding the `uiSchema` object + +The `uiSchema` object was introduced by [react-jsonschema-form](https://github.com/mozilla-services/react-jsonschema-form#react-jsonschema-form), or *rjsf*, as a means of describing how a form page should be rendered from a `schema`. To generate a form, react-jsonschema-form steps through the schema depth and renders different React components based on the type of data each property in the schema represents. In the US Forms System library, `uiSchema` follows the format described in the [react-jsonschema-form documentation](https://github.com/mozilla-services/react-jsonschema-form#the-uischema-object), with some custom us-forms-system additions. The `schema` and `uiSchema` objects should have a similar structure, with the same fields organized in the same way with these exceptions: + +- `uiSchema` doesn't need to contain all the fields found in the `schema` object. +- `uiSchema` doesn't need a `properties` object for sub-fields. + +For example, given this schema: + +```js +{ + type: 'object', + properties: { + field1: { + type: 'string' + } + } +} +``` + +The matching `uiSchema` would be: + +```js +{ + 'ui:title': 'My form', + field1: { + 'ui:title': 'My field' + } +} +``` + +For array fields, you must specify an `items` object that contains the fields for each row in the array in the `uiSchema` object: + +```js +{ + 'ui:title': 'My form', + toursOfDuty: { + items: { + branchName: { + 'ui:title': 'Branch' + } + } + } +} +``` + +##### Configuring `uiSchema` using rjsf options + +If you're not already familiar with the rjsf uiSchema options, see the [rjsf library documentation](https://github.com/mozilla-services/react-jsonschema-form#the-uischema-object). Some commonly used options include: + +- [ui:order](https://github.com/mozilla-services/react-jsonschema-form#object-fields-ordering): An array of field names in the order in which they should appear. +- [ui:widget](https://github.com/mozilla-services/react-jsonschema-form#alternative-widgets): The name of an alternative widget to use for the field, for example, a custom widget called `yesNo`. +- [ui:field](https://github.com/mozilla-services/react-jsonschema-form#custom-field-components): The name of a custom field. +- [classNames](https://github.com/mozilla-services/react-jsonschema-form#custom-css-class-names): The class names to put on the component. + +##### Configuring `uiSchema` using US Forms System options + +The us-forms-system code includes additional `uiSchema` functionality not found in the rjsf library. + +```js +{ + // Used instead of the `title` property in the JSON Schema. + 'ui:title': '', + // It can also be a component, which passes the current form data as a property. + 'ui:title': ({ formData }) => {`A ${formData.thing} title`}, + + // Used instead of the `description` property in the JSON Schema. This can be a string + // or a React component, and is normally used on object fields in the schema to provide + // description text or HTML before a block of fields. + 'ui:description': '' || DescriptionComponent, + + // Customizes the field or widget you're using. + 'ui:field': '' || FieldComponent, + 'ui:widget': '' || WidgetComponent, + + // Renders string fields on the review page. Always used when you specify a custom widget + // component. Can also be used with regular widgets. + 'ui:reviewWidget': WidgetComponent, + + // Provides a function to make a field conditionally required. The data in the whole form, + // with no page breaks, is the only parameter. Don't make a field required in the JSON + // schema and in addition to using `ui:required` on that field. The index argument is + // provided if you use `ui:required` on data inside an array. + 'ui:required': function (formData, index) { + return true || false; + }, + + // An array of validation functions or objects that you can use to add validation that's + // not possible through JSON Schema. See below for the properties passed to the validation + // functions and how to use them. + 'ui:validations': [ + /** + * Note the difference between the three data parameters: + * + * @param {any} fieldData The data for the current field being validated + * @param {object} formData The data for all the fields in every page + */ + function (errors, fieldData, formData, fieldSchema, errorMessages) { + errors.addError('My error'); + }, + { + validator: (errors, fieldData, formData, fieldSchema, errorMessages, options) => { + errors.addError('My other error'); + }, + options: {} + } + ], + + // An object with field-specific error messages. Structured by error name (from JSON Schema + // error types). This is passed to custom validations in `ui:validations` in order to allow + // configurable error messages in a validator. + 'ui:errorMessages': { + 'pattern': 'Please provide a value in the right format' + }, + 'ui:options': { + + // An map of enum values to labels that are shown by the select and radio widgets. + labels: { + chapter30: 'A readable description (Chapter 30)' + }, + + // A map of values to a component, text, or JSX + // (https://reactjs.org/docs/introducing-jsx.html). If your field is a radio widget, the + // content here is shown underneath the radio button for that value when it's selected. + nestedContent: { + 'value':

Some text

+ }, + + // A string of class names that are added to the widget for the current field. + // `widgetClassNames` is similar to the default `classNames` property, but it puts the + // class names on the input/select/etc element itself, rather than a surrounding `div`. + widgetClassNames: '', + + // For array fields, this component is shown when the item in the array is rendered as + // read-only on a page that is not a review page. + viewField: RowViewComponent, + + // To show a field only when another field is true, set this option to the property name. + // It wraps the fields with an ExpandingGroup component using the `expandUnder` field as + // the first question. + expandUnder: '', + + // To match to a specific value, use the `expandUnderCondition` option to specify the + // value that the `expandUnder` field's data should equal. + expandUnderCondition: 'someValue', + // `expandUnderCondition` can also be a function that receives the data from the + // `expandUnder` field as an argument. + expandUnderCondition: (field) => field === 'someValue' || field === 'someOtherValue', + + // When using the expandUnder option, you can set `expandUnderClassNames` on the field + // specified by `expandUnder` and it will add classes to the `div` that wraps all of the + // fields when they're expanded. See cookbook for an example use case. + expandUnderClassNames: '', + + // Hides the specified field on the review page. + hideOnReview: true || false, + + // Hides the specified field on the review page when the field value is `false`. + hideOnReviewIfFalse: true || false + + // A function that conditionally hides fields in the form. `hideIf` provides the `index` + // argument when you use `ui:required` on data inside an array. + hideIf: function (formData, index) { + return true || false; + } + + // A function that conditionally replaces the current field's schema. `updateSchema` + // provides the `index` argument when you use `ui:required` on data inside an array. + updateSchema: function (formData, schema, uiSchema, index, pathToCurrentData) { + // This function returns an object with the properties you want to update. Instead of + // replacing the existing schema, it updates the individual properties. + return { + type: 'string' + }; + }, + + // By default, array fields that are displayed on a single page in a form, such as + // information for multiple dependents, are displayed in a separate section on the + // review page. To keep the information in a single section on a review page, set + // this property to `true`. + keepInPageOnReview: true + } +} +``` + +[Back to *Building a Form*](./README.md) diff --git a/docs/building-a-form/about-the-us-forms-system-library.md b/docs/building-a-form/about-the-us-forms-system-library.md deleted file mode 100644 index 42801df..0000000 --- a/docs/building-a-form/about-the-us-forms-system-library.md +++ /dev/null @@ -1,300 +0,0 @@ -# About the US Forms System library - -The US Forms System lets you build web-based forms using React and the JSON Schema standard. - -### In this guide - -- [Understanding JSON Schema](#understanding-json-schema) - - [Describing object fields and arrays](#describing-object-fields-and-arrays) -- [Understanding react-jsonschema-form (rjsf)](#understanding-react-jsonschema-form-rjsf) - - [About the `Form` component, fields, and widgets](#about-the-form-component-fields-and-widgets) - - [Field components](#field-components) - - [About the `onChange` field component](#about-the-onchange-field-component) - - [About the `uiSchema` field component](#about-the-uischema-field-component) -- [How the us-forms-system uses rjsf](#how-us-forms-system-uses-rjsf) - - [Customizing fields and widgets from rjsf](customizing-fields-and-widgets-from-rjsf) - - [Supporting multi-page forms](#supporting-multi-page-forms) - -### Understanding JSON Schema - -The JSON Schema standard describes the allowed shape of JSON objects. For more information about the JSON Schema Standard, see [Understanding JSON Schema](https://spacetelescope.github.io/understanding-json-schema/). - -You can nest schemas as far down as you'd like. Schemas have a type, which tells you what kind of data is allowed: - -``` -{ - type: 'string' -} -``` - -The JSON schema can also have validation information, such as regexes or length requirements. This example allows any string that's at least two characters and only contains `e` and `f`, meaning `eff` is valid, but `fcc` is not: - -``` -{ - type: 'string', - pattern: '^[ef]*$', - minLength: 2 -} -``` - -You can also specify some built-in `format` values for strings, such as `email`, as a shortcut for including your own patterns. - -##### Describing object fields and arrays - -This example describes a JSON document that is an object with one property called `myField`, which is a number, meaning `{ myField: 2 }` would be valid: - -``` -{ - type: 'object', - properties: { - myField: { - type: 'number' - } - } -} -``` - -However, `{}` is also valid. To require a property in an object, use the `required` property. As in this example, `required` is always on the object that contains the field, not the field itself: - -``` -{ - type: 'object', - required: ['myField'], - properties: { - myField: { - type: 'number' - } - } -} -``` - -Arrays work similarly to objects. This example describes an array of boolean values: `[true, false, true]`. Items can be an object schema or any other type of schema as well: - -``` -{ - type: 'array', - items: { - type: 'boolean' - } -} -``` - -Many libraries implement the JSON Schema specification and let you validate that an object matches a given schema. The US Forms System uses [ajv](https://www.npmjs.com/package/ajv) for unit tests and [jsonschema](https://www.npmjs.com/package/jsonschema) in the us-forms-system code. For more examples of JSON Schema projects, see the [JSON Schema site example list](http://json-schema.org/examples.html). - -### Understanding react-jsonschema-form (rjsf) - -[react-jsonschema-form](https://github.com/mozilla-services/react-jsonschema-form), or *rjsf*, generates a form from a JSON Schema, in addition to other UI information. To generate a form, react-jsonschema-form steps through the schema depth and renders different React components based on the type of data each property in the schema represents. - -##### About the `Form` component, fields, and widgets - -At the top level, rjsf uses a `Form` component to take the schema inputs and render a hierarchy of components for each field rendered on the form: - -- *Fields* generally match the `type` attribute in a schema. There are object fields, array fields, number fields, boolean fields, and string fields. Except for arrays and objects, the fields render a label (via `FieldTemplate`) and a widget. -- A *widget* is the html input element that accepts data from the user. The us-forms-system uses `text`, `email`, `checkbox`, `radio`, `select`, and `textarea`. While there are many widgets provided by rjsf, the defaults are overwritten with these versions. - -##### Example schema - -``` -{ - type: 'string' -} -``` - -##### Resulting hierarchy - -The two `Field` components determine which fields and widgets to render. `SchemaField` uses the two schemas the library accepts, `schema` and `uiSchema`, to determine what other `Field` component to render. The example chose `StringField` because the schema type was `string`. The `StringField` component then rendered `TextWidget`, based on `schema` and `uiSchema`, because the only information provided was that the field is a string (the default widget type). - -``` - - - - - - - -``` - -##### Example schema - -``` -{ - type: 'string', - enum: ['first', 'second', 'third'] -} -``` - -##### Resulting hierarchy - -The hierarchy for this field uses `SelectWidget` instead of `TextWidget`, because `StringField` detected the `enum` property in the schema. - -``` - - - - - - - -``` - -To override the default fields and widgets, you can pass specific properties to `uiSchema`: - - To specify a particular widget, set the `ui:widget` property to `text`, `email`, `checkbox`, or your own custom widget. - - To specify a particular field, set the `ui:field` property to a specific or custom field. - -While in most cases a field component is responsible for rendering a label and a widget, for `object` and `array` schema types, the field component renders additional field components for each of the elements they contain. - -##### Example schema: `object` - -This is an `object` schema with two string fields. - -``` -{ - type: 'object', - properties: { - field1: { - type: 'string' - }, - field2: { - type: 'string' - } - } -} -``` -##### Resulting hierarchy - -The `ObjectField` component renders a `SchemaField` component for each of its properties. Those properties are both `string` types, so it looks like the first hierarchy, but nested. - -``` - - - - - - - - - - - - - - - - - - -``` - -##### Example schema: `ArrayField` - -`ArrayField` renders a `SchemaField` component for each item in the array. The library only uses the array field where each item is an object type schema. - -``` -{ - type: 'array', - items: { - type: 'object', - properties: { - field1: { - type: 'string' - }, - field2: { - type: 'string' - } - } - } -} -``` - -##### Field components - -These field components pass a collection of props down through each component. Most are passed to widget components. - -- `name`: The property name of the current field. For example, the object schema above would be named `field1`. -- `required`: If the field is required or not (i.e. the property name is in the schema's `required` array). -- `schema`: The schema for the specific field. -- `uiSchema`: The ui schema for this field. See "[About the `uiSchema` field component](#about-the-uischema-field-component)." -- `errorSchema`: An object that contains the list of errors for the current field and any child properties, if the field is an array or object. -- `idSchema`: An object that contains the field IDs for the current field and any child properties. The library generates IDs for each field by joining each property name with an underscore. -- `formData`: The actual data entered for the field so far. -- `onChange`: The function that's called when data changes. See "[About the `onChange` field component](#about-the-onchange-field-component)." -- `onBlur`: The function that's called when focus is lost on a widget. - -##### About the `onChange` field component - -When a user enters data, each widget calls `onChange`. Each component in the hierarchy passes an `onChange` handler to child fields. When child data changes, the component combines it with the rest of the data and calls the `onChange` prop passed to it from its parent. - -``` -{ - type: 'object', - properties: { - field1: { - type: 'string' - } - } -} -``` - -In this example: - -1. The user types 'a'. -2. The `TextWidget` for field1 calls `onChange` with 'a'. -3. The `onChange` property came from the parent `ObjectField` component, which puts 'a' in an object as `field1` (`{ field1: 'a' }`), then calls the `onChange` prop it was passed. -4. When it reaches the top-level `Form` component, rjsf runs the JSON Schema validation and passes the results through the component hierarchy. - -Similar to Redux, all state is kept in the `Form` component, or the root of the form. All data processing and validation happens in `Form`, or is triggered by hooks provided by `Form`. The us-forms-system code built on top of this processes the schemas and form data in Redux, triggered by events provided by `Form`. - -##### About the `uiSchema` field component - -Along with the regular JSON Schema, a UI schema for UI-specific options that don't fit within the JSON Schema standard is also optionally defined for each field. The `uiSchema` field component is primarily used for specifying custom fields and widgets for specific fields in the schema using `ui:field` and `ui:widget`. In the us-forms-system, it's also used for label names, custom validation, and conditionally required fields. - -### How us-forms-system uses rjsf - -The us-forms-system code uses rjsf to render form fields, but it builds a scaffolding on top of it to support multi-page forms and our common form patterns. The second part is creating a form configuration spec that allows devs to specify the structure of one of our multi-page forms. - -##### Customizing fields, widgets, and events from rjsf - -rjsf passes all field and widget components to `SchemaField` (and most other components) as a `registry` property. To override fields and widgets in the registry, pass components of the same name into the library's main `Form` component. The us-forms-system uses custom versions of these components: - -- `ObjectField` -- `ArrayField` -- `FieldTemplate` -- `TextWidget` -- `SelectWidget` -- `EmailWidget` -- `CheckboxWidget` -- `RadioWidget` -- `TextareaWidget` - -The us-forms-system uses these custom fields and widgets: - -- `YesNoWidget` -- `AddressField` -- `DateWidget` -- `SSNWidget` -- `PhoneWidget` - -Writing custom widgets is similar to writing React components: A value is passed in, and an `onChange` hook is provided for changing data. Other properties like the schemas and field ID are also provided. - -Custom fields receive all properties listed previously for field components in rjsf. - -In addition to customizing fields and widgets, the us-forms-system code hooks into a number of events provided by `Form` to support our form patterns, found in the `FormPage` component. These events are: - -- `validate`: This event is called when validation occurs. We call our custom validation, which reads uiSchema for custom validation hooks that have been included for form fields outside of what JSON Schema provides. -- `transformErrors`: This event is provided when the us-forms-system receives the list of JSON Schema validation errors and can return a transformed list. It replaces the messages with a set of default messages, as well as any messages provided for specific fields in uiSchema. It also moves the errors for required fields from the object level to the field level. Because JSON Schema specifies required fields with a `required` array on an object field schema, any errors about missing data are associated with that object and moved so they're associated with the missing field and rendered with that field on the form. -- `onError`: This event is called if a user tries to submit a form with a validation error. The us-forms-system sets a `submitted` flag in `formContext`, which is an object passed to all fields and components in the rjsf form. The `FieldTemplate` component uses `formContext` to display all error messages to the user. -- `onSubmit`: This event is called when a user submits a form with no validation errors. When this happens, the us-forms-system code looks for the next page in the multi-page form and navigates to it. -- `onChange`: This event is called when a user changes data in the form. The us-forms-system fires a Redux action and updates the store with the new data. The reducer code does several recalculations: - - **Recalculate the required fields for the schema:** You can specify functions in uiSchema that set fields as optional or required based on form data. This runs them and updates the schema. - - **Recalculate which schema fields are hidden and remove that data:** In uiSchema, you can specify fields that are conditionally hidden based on user data. To avoid validation errors from data a user can't see, the us-forms-system updates the schema to add a `ui:hidden` property and remove any user data for those fields. - - **Recalcuate general schema updates:** Because you can make arbitrary changes to the schema based on form data, the us-forms-system must also make those changes, for example, removing options in an `enum` array when a user has entered certain data. - -##### Supporting multi-page forms - -Large forms are organized into *chapters* and *pages*. A chapter is a collection of pages, each rendered as a single rjsf form with a schema and `uiSchema` field component. The chapter and page organization is described in a form config file that the us-forms-system uses to generate a list of routes. A user can move through the list of pages until they reach the review page. - -The review page also takes the config file and renders each chapter in an accordion panel. Inside a panel, the us-forms-system uses rjsf to render each page in a read-only view. This view uses simplified widgets and a different `FieldTemplate` component to render each form field in a definition list. The read-only view uses the rjsf `Form` component with no input elements, rendering instead with text. When a user on the review page clicks Edit for a form page, the normal widgets are used and a normal form is rendered. - -Each array item on a review page is rendered as read-only, and individual items can be edited independently. To accomplish this, the review `ArrayField` component renders each item in the array as it's own rjsf `Form`. In addition, array fields are taken from the page's read-only view and rendered separately. - -[Back to *Building a Form*](README.md) diff --git a/docs/building-a-form/adding-widgets-and-definitions.md b/docs/building-a-form/adding-widgets-and-definitions.md deleted file mode 100644 index ea01c7b..0000000 --- a/docs/building-a-form/adding-widgets-and-definitions.md +++ /dev/null @@ -1,208 +0,0 @@ -# Adding widgets and definitions - -There are many common fields and widgets you can use to build forms. There are common types of definitions: `schema`/`uiSchema` objects and functions that return `schema`/`uiSchema` objects. For the function versions, there is documentation within the fields for the parameters. - -### In this guide - -- [Common widgets](#common-widgets) -- [Common definitions](#common-definitions) - -### Common widgets - -These common widgets are included in the us-forms-system by default. Set these widgets in a config file while building your form. Some are associated with particular schema types or formats. There are additional widgets available, but the us-forms-system uses definitions they're included in, rather than just the field. - -To use a widget, set `ui:widget` for a field to the name of the widget. Widgets are located in [/src/js/widgets](src/js/widgets). - -Widget | Default schema type or format ------------- | ------------- -`ArrayCountWidget` | -`CheckboxWidget` | type: `boolean` -`CurrencyWidget` | -`DateWidget` | -`EmailWidget` | -`PhoneNumberWidget` -`RadioWidget` | -`SelectWidget` | type: `string` with an enum property -`SSNWidget` | -`TextWidget` | type: `string` -`YesNoWidget` | - -### Common definitions - -These definitions address form field patterns that are more complex than widgets and include common label text, validation, or field components. Definitions are located in [/src/js/definitions](src/js/definitions). - -- Simple definitions are provided as `schema` and `uiSchema` objects that you can import and overwrite to customize. -- More complex definitions are functions that require certain parameters. - -Available definitions are: - -- [Address](#address) -- [Autosuggest](#autosuggest) -- [Bank account](#bank-account) -- [Currency](#currency) -- [Current or past dates](#current-or-past-dates) -- [Current or past month/year](#current-or-past-monthyear) -- [Date](#date) -- [Date range](#date-range) -- [File upload](#file-upload) -- [Full name](#full-name) -- [Month/year](#monthyear) -- [Month/year range](#monthyear-range) -- [Non-required full name](#non-required-full-name) -- [Person ID](#person-id) -- [Phone](#phone) -- [Social Security Number](#social-security-number) -- [Year](#year) - -##### Address - -Validates a complete street address that a user types. - -- File: [/src/js/definitions/address.js](src/js/definitions/address.js) -- `uiSchema`: Yes -- `schema`: Yes -- Function or object: Functions - -##### Autosuggest - -A common type-ahead widget that lets a user type in values and narrow down a longer list of options. - -- File: [/src/js/definitions/autosuggest.js](src/js/definitions/autosuggest.js) -- `uiSchema`: Yes -- `schema`: Yes (for use when you are not using an `enum` in the schema) -- Function or object: Function for `uiSchema`, object for `schema` - -##### Bank account - -The common electronic funds transfer (EFT) account information field that collects account type (checking or savings), bank account number, and bank routing number. - -- File: [/src/js/definitions/bankAccount.js](src/js/definitions/bankAccount.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Object - -##### Currency - -- File: [/src/js/definitions/currency.js](src/js/definitions/currency.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Current or past dates - -The common date field with current or past validation set. - -- File: [/src/js/definitions/currentOrPastDate.js](src/js/definitions/currentOrPastDate.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Current or past month/year - -The common date field without the day field and with current or past validation set. - -- File: [/src/js/definitions/currentOrPastMonthYear.js](src/js/definitions/currentOrPastMonthYear.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Date - -The common date field with basic date validation. - -- File: [/src/js/definitions/date.js](src/js/definitions/date.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Date range - -Two common date fields with validation to ensure they form a valid range. - -- File: [/src/js/definitions/dateRange.js](src/js/definitions/dateRange.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### File upload - -The file upload field. Requires a specified endpoint for the upload. - -- File: [/src/js/definitions/file.js](src/js/definitions/file.js) -- `uiSchema`: Yes -- `schema`: Yes (the same as in vets-json-schema) -- Function or object: Function for `uiSchema`, object for `schema` - -##### Full name - -The normal name field, including first, middle, last, and suffix. - -- File: [/src/js/definitions/fullName.js](src/js/definitions/fullName.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Object - -##### Month/year - -The common date field, excluding day field, with basic validation. - -- File: [/src/js/definitions/monthYear.js](src/js/definitions/monthYear.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Month/year range - -Two common date fields, excluding day field, with validation to ensure the dates form a valid range. - -- File: [/src/js/definitions/monthYearRange.js](src/js/definitions/monthYearRange.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Non-required full name - -A function that takes a full name `schema` and sets its required field list to `empty`. - -- File: [/src/js/definitions/nonRequiredFullName.js](src/js/definitions/nonRequiredFullName.js) -- `uiSchema`: No -- `schema`: Yes -- Function or object: Function - -##### Person ID - -A function that allows the user to input a form of personal identification. For example, the form can ask for a social security number and include a checkbox to specify that the user doesn't have one, allowing them to instead input a Veterans Affairs file number. - -- File: [/src/js/definitions/personId.js](src/js/definitions/personId.js) -- `uiSchema`: Yes -- `schema`: Yes -- Function or object: Function - -##### Phone - -A phone number with basic validation. - -- File: [/src/js/definitions/phone.js](src/js/definitions/phone.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Function - -##### Social Security Number - -A social security number with default label text and validation. - -- File: [/src/js/definitions/ssn.js](src/js/definitions/ssn.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Object - -##### Year - -A text field that validates the current or a past year. - -- File: [/src/js/definitions/year.js](src/js/definitions/year.js) -- `uiSchema`: Yes -- `schema`: No -- Function or object: Object - -[Back to *Building a Form*](README.md) diff --git a/docs/building-a-form/available-form-features-and-usage-guidelines.md b/docs/building-a-form/available-form-features-and-usage-guidelines.md new file mode 100644 index 0000000..e714e8d --- /dev/null +++ b/docs/building-a-form/available-form-features-and-usage-guidelines.md @@ -0,0 +1,432 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) + +# Available form features and usage guidelines + +These form features are available in the US Forms System library. We've provided information about how to implement them in your form. + +### In this guide + +- [Form instructions](#form-instructions) +- [Form footer](#form-footer) +- [Progress bar](#progress-bar) +- [Title](#title-and-subtitle) +- [Date](#date) +- [Alerts](#alerts) +- [Radio button group](#radio-button-group) +- [Checkbox group](#checkbox-group) +- [Required field](#required-field) +- [Contextual error message](#contextual-error-message) +- [Duplicate field validation](#duplicate-field-validation) +- [Conditional form fields](#conditional-form-fields) +- [Sequential duplicate form groups](#sequential-duplicate-form-groups) +- [Review page](#review-page) +- [Required checkbox before form submission](#required-checkbox-before-form-submission) + +### Form instructions + +This widget allows you to provide important information, warnings, or step-by-step instructions to users before they fill out a form. + +![Instructions for an example healthcare benefits form](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Instructions.png) + +#### Usage guidelines + +Unlike most components, the `Introduction` React component is in the US Forms System Starter App at https://github.com/usds/us-forms-system-starter-app/blob/master/js/components/Introduction.jsx, not the library itself. + +To include the component, set the `formConfig.introduction` property to a reference to that component. Edit the HTML inside the component to change the content. For example: + +```js +import Introduction from '../components/Introduction.jsx'; + +const formConfig = { + … + introduction: Introduction, + … +}; +``` + +### Form footer + +This widget appears at the bottom of every page of a multi-page form. It is not required. + +![A form footer that lists phone numbers to call for help](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Footer.png) + +#### Usage guidelines + +To define footer content, create a React component that renders HTML to act as a footer. The [US Forms System Starter App](https://github.com/usds/us-forms-system-starter-app) does not include a footer, but the design of this component would be very similar to the Introduction component that the starter app contains. For example: + +```js +import Footer from '../components/Footer.jsx'; +const formConfig = { + … + footer: Footer, + … +}; +``` + +For the code implementation, see [FormApp.jsx](https://github.com/usds/us-forms-system/blob/master/src/js/containers/FormApp.jsx). + +### Progress bar + +The `SegmentedProgressBar` component calculates the number of chapters completed and displays them in a horizontal stack of blocks. It indicates to the user how much of a multi-chapter or multi-page form they've completed. It includes: + +- A non-interactive, sectioned progress bar +- A number to indicate how many pages there are within each section +- The title of that section + +![A progress bar indicating that three of six parts of a form are completed](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Progress-Bar.png) + +#### Usage guidelines + +In `formConfig`, define your form's chapters and the pages contained inside each chapter. To add a progress bar to a multi-page form, create chapters with a single page each. We don't recommend including a progress bar on single-page forms. + +US Forms System includes the progress bar by default, and will display automatically when the chapters and pages are defined. To remove the progress bar, edit the `FormNav.jsx` component to remove the defined `SegmentedProgressBar` in the HTML. + +For the code implementation, see: +- [FormNav.jsx](../../src/js/components/FormNav.jsx) +- [SegmentedProgressBar.jsx](../../src/js/components/SegmentedProgressBar.jsx) + +### Title and Subtitle + +The Title and Subtitle represent the name and form number, respectively. The subtitle displays near the form title. + +![A title and subtitle of a form with the title highlighted](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Title.jpg) + +#### Usage guidelines + +Define the title and subtitle in `formConfig`. For example: + +```js +const formConfig = { + … + title: 'Apply for Health Care', + subtitle: 'Form 10-10EZ', + … +}; +``` + +For the code implementation, see [FormTitle.jsx](../../src/js/components/FormTitle.jsx). + +### Date + +Defines a date picker with validations. + +![A form date selector widget with June 8, 1995 selected](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Date.jpg) + +#### Usage guidelines + +Define these fields in the `schema` and then reference them in the `uiSchema`. These date field definitions are available: + +- [date.js](../../src/js/definitions/date.js) +- [dateRange.js](../../src/js/definitions/dateRange.js) +- [currentOrPastDate.js](../../src/js/definitions/currentOrPastDate.js) +- [monthYear.js](../../src/js/definitions/monthYear.js) +- [monthYearRange.js](../../src/js/definitions/monthYearRange.js) + +For example: + +```js +import currentOrPastDate from '../definitions/currentOrPastDate.js'; +const formConfig = { + … + schema: { + type: 'object', + required: [ 'serviceDate' ], + properties: { + serviceDate: 'string' + } + }, + uiSchema: { + serviceDate: currentOrPastDate('Service Date'), + } + … +}; +``` + +### Alerts + +Alerts are included automatically in fields that include validation. Taken from USWDS, alerts appear in several color variations, with or without icons, to indicate a warning, an error, or contextual information. + +#### Usage guidelines + +For examples of how alerts are used, see https://github.com/usds/us-forms-system/tree/master/src/js/widgets. + +### Radio button group + +A group of options where the user can only select a single item. + +![A question with four radio button options and one selected](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Boolean-radio.jpg) + +#### Usage guidelines + +The data for a group of radio buttons is similar to the data for a select field (i.e., `string` type with an `enum` property), which means the `SelectWidget` will be rendered by default. + +To override the `SelectWidget`, pass `'ui:widget': 'radio'` to your `uiSchema` for that field. To specify different label text for each option, pass `'ui:options'` to `uiSchema`. + +Your config for a question where the answer is selected from a group of radio buttons might look like this: + +```js +schema: { + type: 'object', + properties: { + favoriteAnimal: { + type: 'string', + enum: ['dog', 'cat', 'octopus', 'sloth'] + } + } +}, +uiSchema: { + 'ui:widget': 'radio', + 'ui:options': { + labels: { + dog: 'Dog', + cat: 'Cat', + octopus: 'Octopus', + sloth: 'Sloth' + } + } +} +``` + +For the code implementation, see [`RadioWidget`](../../src/js/widgets/RadioWidget.jsx). + +### Checkbox group + +A group of options where the user can select multiple items. + +![A multiple choice question with two options selected](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Boolean-checkbox.jpg) + +#### Usage guidelines + +Each individual checkbox is used to store `boolean` data. To include a group of checkboxes, include separate fields for each checkbox, with `type: 'boolean'` passed to the `schema`. + +Your config for a group of checkboxes might look like this: + +```js +schema: { + type: 'object', + properties: { + 'view:booksRead': { + type: 'object', + properties: { + hasReadPrideAndPrejudice: { type: 'boolean' }, + hasReadJaneEyre: { type: 'boolean' }, + hasReadGreatGatsby: { type: 'boolean' }, + hasReadBuddenbrooks: { type: 'boolean' } + } + } + } +}, +uiSchema: { + 'view:booksRead': { + 'ui:title': 'Which books have you read?', + 'ui:description': 'You may check more than one.', + hasReadPrideAndPrejudice: { + 'ui:title': 'Pride and Prejudice by Jane Austen' + }, + hasReadJaneEyre: { + 'ui:title': 'Jane Eyre by Charlotte Brontë' + }, + hasReadGreatGatsby: { + 'ui:title': 'The Great Gatsby by F. Scott Fitzgerald' + }, + hasReadBuddenbrooks: { + 'ui:title': 'Buddenbrooks by Thomas Mann' + } + } +} +``` + +For the code implementation, see [`CheckboxWidget`](../../src/js/widgets/CheckboxWidget.jsx). + +### Required field + +Require any field. Validation is included. + +![A field with an error indicating a response is required](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Required-field.jpg) + +#### Usage guidelines + +For information on requiring fields or components, see "[About the schema and uiSchema objects](./about-the-schema-and-uischema-objects.md)." + +### Contextual error message + +This indicates to the user that they have either not filled out a required field or they have not done so within the form's parameters. You can set a custom error message to help the user progress with the form. + +![A question with no response and an error indicating a response is required](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Error.jpg) + +#### Usage guidelines + +There are several ways that form fields can be invalid, such as a required field is blank, the entry is too short or long, or the entry does not satisfy a specific format. + +- **To show an error on a blank field that is required**, include the field in the array under the `required` property in the `schema`. An error on that field will automatically be rendered if the field is blank. +- **To show an error on a field for any other reason** (e.g., it has not met certain data requirements), pass a validation function to the array for the `ui:validations` property under that field in `uiSchema`. + +The error message that is displayed can either be a default message or one that you specify. There are several [default error messages](../../src/js/validation.js) for different situations. + +To show a custom error message, add the message to the `ui:errorMessages` object in the `uiSchema` as a key value pair: + +- The key is the `schema` property that the data is in violation of (e.g., the entry doesn't match the requirements of the `pattern` property). +- The value is the text of the error message. + +When you include multiple messages in the `ui:errorMessages` object, they will be evaluated in order. + +Your config file may look like this: +```js +schema: { + type: 'object', + required: ['ssn'], + properties: { + ssn: { + type: 'string', + pattern: '^[0-9]{9}$' + } + } +}, +uiSchema: { + ssn: { + 'ui:widget': SSNWidget, + 'ui:title': 'Social Security number', + 'ui:validations': [ + validateSSN + ], + 'ui:errorMessages': { + required: 'Please enter your SSN', + pattern: 'Please enter a valid 9 digit SSN (dashes not allowed)' + } + } +} +``` + +### Duplicate field validation + +This feature validates that a user has correctly entered duplicate data in two fields. + +![Two fields with an error indicating the value of the entries must match](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Duplicate-Field-Validation.jpg) + +#### Usage guidelines + +For more information, see "[Validating a field based on other fields in the same object](./common-patterns-for-building-forms.md#validating-a-field-based-on-other-fields-in-the-same-object)." + +### Conditional form fields + +You can set follow up questions to appear only if the user answers a form question a particular way. + +![A question with a yes/no answer, and additional fields that displayed when the answer was Yes](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Conditional-Fields.jpg) + +#### Usage guidelines + +There are 2 fields you can use to conditionally expand a form field: +- `expandUnder`: This property takes the name of the other field upon which your field is shown. +- `expandUnderCondition`: This property takes 1 of 2 values: +- The answer to the other field that would satisfy the condition to show your field. If the other field takes boolean data, your field will automatically be shown if the answer to the other field is `true`, so there is no need to include `expandUnderCondition: true` in that case. However, if the other field takes any other type of data, you will need to include `expandUnderCondition`. +- A function that receives the data from the `expandUnder` field as an argument. + +Both fields are nested under the `ui:options` property in the `uiSchema`. + +The `expandUnder` and `expandUnderCondition` properties are distinctly separate from the `depends` property, which conditionally shows entire pages of the form. For more information, see "[Conditionally excluding a page](./common-patterns-for-building-forms.md#conditionally-including-a-page)." + +Your config file might look like this: +```js +{ + schema: { + type: 'object', + properties: { + hasPet: { + type: 'boolean' + }, + petName: { + type: 'string' + } + } + }, + uiSchema: { + hasPet: { + 'ui:title': 'Do you have a pet?' + 'ui:widget': 'yesNo' + }, + petName: { + 'ui:title': 'What is your pet‘s name?', + 'ui:options': { + expandUnder: 'hasPet', + expandUnderCondition: true + } + } + } +} +``` + +For the code implementation, see [`helpers.js`](../../src/js/state/helpers.js). + +### Sequential duplicate form groups + +Use this feature to collect multiple items with the same form questions, such as addresses in a time period, jobs in a time period, or employment in a time period. + +![A form section showing basic information about multiple insurance policies](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Sequential-Duplicate-Form-Groups.jpg) + +#### Usage guidelines + +To display multiple groups of the same form questions, define the data in the `schema` as `type: 'array'`, with each group of questions as an `item` in that `array`. The `schema` and `uiSchema` for the group of questions within the `items` object is structured the same as other fields. + +Your config file might look like this: +```js +{ + schema: { + type: 'object', + properties: { + dogs: { + type: 'array', + items: { + type: 'object', + properties: { + nameOfDog: { type: 'string' }, + age: { type: 'string' }, + breed: { type: 'string' } + } + } + } + } + }, + uiSchema: { + 'ui:title': 'How many dogs do you have?', + items: { + nameOfDog: { 'ui:title': 'What is your dog‘s name?' }, + age: { 'ui:title': 'How old is your dog?' }, + breed: { 'ui:title': 'What is your dog‘s breed?' } + } + } +} +``` + +### Review page + +When you build a form with more than one chapter (shown by the segments in a progress bar), the review page lets a user edit all of their entered form data without having to go back one page at a time. + +![Multiple collapsed summaries of sections within a form](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Review-Page.jpg) + +#### Usage guidelines + +The review page renders the form data in review mode automatically. However, you can pass some specific options to the form config to customize some review features. + +This property is nested directly under `uiSchema`: +- `'ui:reviewWidget'`: takes a widget component to render on the review page for that field. Default review widgets are automatically rendered, so only use this if you need to customize the review widget that is used. + +These properties are nested under `uiSchema: { `ui:options`: {} }`: +- `hideOnReview`: Hides the field on the review page; takes a `boolean` +- `hideOnReviewIfFalse`: Hides the field on the review page when the field value is `false`; takes a `boolean` +- `keepInPageOnReview`: By default, array fields that are displayed on a single page in a form, such as information for multiple dependents, are displayed in a separate section on the review page. To keep the information in a single section on a review page, set this property. + +For the code implementation, see the [`review` folder](../../src/js/review). + +### Required checkbox before form submission + +Use this feature to require a user to indicate they have read terms and conditions, a privacy policy, or any other text before submitting your form. This includes a checkbox and short-form text that can include relevant links to more verbose text on separate pages on your site. + +![Required checkbox before form submission](https://raw.githubusercontent.com/wiki/usds/us-forms-system/images/Required-Checkbox.jpg) + +#### Usage guidelines + +Right now, the required checkbox is automatically included in all forms. The US Forms System team will refactor this component to make it more customizable. To follow that discussion, subscribe to https://github.com/usds/us-forms-system/issues/53. + +For the code implementation, see [`ErrorableCheckbox`](../../src/js/components/ErrorableCheckbox.jsx). + +[Back to *Building a Form*](./README.md) diff --git a/docs/building-a-form/available-widgets.md b/docs/building-a-form/available-widgets.md new file mode 100644 index 0000000..2fd69f9 --- /dev/null +++ b/docs/building-a-form/available-widgets.md @@ -0,0 +1,116 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) + +# Available widgets + +Widgets are React components that return specific HTML form elements. Set these widgets in a config file while building your form. + +Some widgets are associated with particular schema types or formats. There are additional widgets available, but the us-forms-system uses definitions they're included in, rather than just the field. + +Widgets from the [react-jsonschema-form library](./about-the-schema-and-uischema-objects.md#understanding-the-uischema-object) include string mappings. Widgets created specifically for US Forms System do not have mappings, and therefore must be specified by passing the component for the widget directly to the config. To include such widgets, import the widget at the top of the file: + +```js +import CurrencyWidget from 'us-forms-system/lib/js/widgets/CurrencyWidget'; +``` + +Then, set the `ui:widget` field to the imported widget name: + +```js +uiSchema: { + ... + 'ui:widget': CurrencyWidget, + ... +} +``` + +Available widgets are: + +- [`ArrayCountWidget`](#arraycountwidget) +- [`CheckboxWidget`](#checkboxwidget) +- [`CurrencyWidget`](#currencywidget) +- [`DateWidget`](#datewidget) +- [`EmailWidget`](#emailwidget) +- [`PhoneNumberWidget`](#phonenumberwidget) +- [`RadioWidget`](#radiowidget) +- [`SelectWidget`](#selectwidget) +- [`SSNWidget`](#ssnwidget) +- [`TextWidget`](#textwidget) +- [`YesNoWidget`](#yesnowidget) + +### `ArrayCountWidget` + +Renders a `` HTML element, and is used when determining how many times a group of questions should be rendered. For more information about grouping common questions, see "[Sequential duplicate form groups](./available-form-features-and-usage-guidelines.md#sequential-duplicate-form-groups)." + +- **File:** [ArrayCountWidget.jsx](../../src/js/widgets/ArrayCountWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': ArrayCountWidget` for the given field. + +### `CheckboxWidget` + +Renders a single `` HTML element. For information about rendering multiple checkboxes together, see "[Checkbox Group](./available-form-features-and-usage-guidelines.md#checkbox-group)." + +- **File:** [CheckboxWidget.jsx](../../src/js/widgets/CheckboxWidget.jsx) +- **Usage:** Usually the `CheckboxWidget` is not specified directly in the `uiSchema` because it renders by default for a schema that specifies `type: 'boolean'`. + +### `CurrencyWidget` + +Renders a `` HTML element with some additional logic to handle parsing currency inputs. + +- **File:** [CurrencyWidget.jsx](../../src/js/widgets/CurrencyWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': CurrencyWidget` for the given field. + +### `DateWidget` + +Renders three separate fields for dates, two `` element for the year. + +- **File:** [DateWidget.jsx](../../src/js/widgets/DateWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': 'date'` for the given field. + +### `EmailWidget` + +Renders a `TextWidget` with the `type: "email"` passed to the `` element. + +- **File:** [EmailWidget.jsx](../../src/js/widgets/EmailWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': 'email'` for the given field. + +### `PhoneNumberWidget` + +Renders a `TextWidget` with additional logic to strip non-numeric characters from the input before saving the input. + +- **File:** [PhoneNumberWidget.jsx](../../src/js/widgets/PhoneNumberWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': PhoneNumberWidget` for the given field. + +### `RadioWidget` + +Renders a single radio button for each `enum` value. This overrides the default `SelectWidget` that is normally rendered where `enum` exists. + +- **File:** [RadioWidget.jsx](../../src/js/widgets/RadioWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': 'radio'` for the given field. Usually used with `'ui:options': { labels: {}}` so you can specify the label for each radio button. To see a code example, refer to [radio button group in form features](./available-form-features-and-usage-guidelines.md#radio-button-group). + +### `SelectWidget` + +Renders a `` HTML element, and is the default widget for data of `type: 'string'`. + +- **File:** [TextWidget.jsx](../../src/js/widgets/TextWidget.jsx) +- **Usage:** Usually the `TextWidget` is not specified directly in the `uiSchema` because it renders by default for a schema that specifies `type: 'string'`. + +### `YesNoWidget` + +Renders two radio buttons, one with a value of "Yes" and one with a value of "No". + +- **File:** [YesNoWidget.jsx](../../src/js/widgets/YesNoWidget.jsx) +- **Usage:** In the `uiSchema`, specify `'ui:widget': 'yesNo'` for the given field. + +[Back to *Building a Form*](./README.md) diff --git a/docs/building-a-form/common-definitions.md b/docs/building-a-form/common-definitions.md new file mode 100644 index 0000000..5b81f36 --- /dev/null +++ b/docs/building-a-form/common-definitions.md @@ -0,0 +1,269 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) + +# Common definitions + +Definitions are pieces of the form config that can be dropped in to represent specific types of questions. Most often used in `uiSchema`, definitions include features such as label text, validation functions, error messages, and rules for which widget to render. + +There are common types of definitions: `schema`/`uiSchema` objects and functions that return `schema`/`uiSchema` objects. For the function versions, there is documentation within the fields for the parameters. Definitions are located in [/src/js/definitions](../../src/js/definitions). + +- Simple definitions are provided as `schema` and `uiSchema` objects that you can import and overwrite to customize. +- More complex definitions are functions that require certain parameters. + +### Using definitions + +To use a definition, import it near the top of the file you want to reference it in: + +```js +import currencyUI from 'us-forms-system/lib/js/definitions/currency'; +``` + +Then, call it to add all the `uiSchema` definitions. In this example, the definition is a function that takes the title for that field, which is used to populate the 'ui:title' property in uiSchema: + +```js +uiSchema: { + ... + monthlyWages: currencyUI('Monthly wages') + ... +} +``` + +Available definitions are: + +- [Address](#address) +- [Autosuggest](#autosuggest) +- [Bank account](#bank-account) +- [Currency](#currency) +- [Current or past dates](#current-or-past-dates) +- [Current or past month/year](#current-or-past-monthyear) +- [Date](#date) +- [Date range](#date-range) +- [File upload](#file-upload) +- [Full name](#full-name) +- [Month/year](#monthyear) +- [Month/year range](#monthyear-range) +- [Non-required full name](#non-required-full-name) +- [Person ID](#person-id) +- [Phone](#phone) +- [Social Security Number](#social-security-number) +- [Year](#year) + +### Address + +Validates a complete street address that a user types. + +- File: [/src/js/definitions/address.js](../../src/js/definitions/address.js) +- `uiSchema`: Yes +- `schema`: Yes +- Function or object: Functions + +### Autosuggest + +A common type-ahead widget that lets a user type in values and narrow down a longer list of options. It is most commonly used with an `enum` of the available options as shown here. Define the uiSchema by calling the function that you import. You can pass an object with additional uiSchema properties. +```js +import { uiSchema as autosuggestUI } from 'us-forms-system/lib/js/definitions/autosuggest'; + +schema: { + type: 'object', + properties: { + officeLocation: { + type: 'string', + enum: [ + 'LA', 'NY', 'CH' + ], + enumNames: [ + 'Los Angeles', + 'New York', + 'Chicago' + ] + } + } +}, +uiSchema: { + officeLocation: autosuggestUI( + 'Preferred Office Location', // field title + null, // Promise to get options (optional) + { // Additional uiSchema options + 'ui:options': { + // When labels are not provided, it uses enumNames + labels: { } + } + } + ) +} +``` +Source: [/src/js/definitions/autosuggest.js](../../src/js/definitions/autosuggest.js) + +### Bank account + +The common electronic funds transfer (EFT) account information field that collects account type (checking or savings), bank account number, and bank routing number. Use these definitions as the uiSchema for the field that represents the account number. + +```js +import bankAccountUI from 'us-forms-system/lib/js/definitions/bankAccount'; + +uiSchema: { + eftinfo: bankAccountUI +} +``` +Source: [/src/js/definitions/bankAccount.js](../../src/js/definitions/bankAccount.js) + +### Currency + +Formats and validates a US currency field. The display includes a leading `$` character. Call this exported function and pass it the label to be used on the field. + +```js +import currencyUI from 'us-forms-system/lib/js/definitions/currency'; + +uiSchema: { + payments: currencyUI('Total Payments') +} +``` +Source: [/src/js/definitions/currency.js](../../src/js/definitions/currency.js) + +### Current or past dates + +The common date field with current or past validation set (i.e., dates in the future are not valid). Call this exported function and pass it the label to be used on the field. + +```js +import currentOrPastDateUI from 'us-forms-system/lib/js/definitions/currentOrPastDate'; + +uiSchema: { + birthdate: currentOrPastDate('Date of Birth') +} +``` +Source: [/src/js/definitions/currentOrPastDate.js](../../src/js/definitions/currentOrPastDate.js) + +### Current or past month/year + +The common date field without the day field and with current or past validation set (i.e., dates in the future are not valid). Call this exported function and pass it the label to be used on the field. + +```js +import currentOrPastMonthYear from 'us-forms-system/lib/js/definitions/currentOrPastMonthYear'; + +uiSchema: { + lastContact: currentOrPastMonthYear('Last Contact') +} +``` +Source: [/src/js/definitions/currentOrPastMonthYear.js](../../src/js/definitions/currentOrPastMonthYear.js) + +### Date + +The common date field with basic date validation. Call this exported function and pass it the label to be used on the field. +```js +import dateUI from 'us-forms-system/lib/js/definitions/date'; + +uiSchema: { + startDate: dateUI('startDate') +} +``` +Source: [/src/js/definitions/date.js](../../src/js/definitions/date.js) + +### Date range + +Two common date fields with validation to ensure they form a valid range. Call this exported function. +```js +import dateRangeUI from 'us-forms-system/lib/js/definitions/dateRange'; + +uiSchema: { + servicePeriod: dateRangeUI('servicePeriod') +} +``` +Source: [/src/js/definitions/dateRange.js](../../src/js/definitions/dateRange.js) + +### File upload + +*Note: This is currently not functional. The file upload field requires a specified endpoint for the upload. Documentation will be updated later.* + +Source: [/src/js/definitions/file.js](../../src/js/definitions/file.js) + +### Full name + +The normal name field, including first, middle, last, and suffix. +```js +import fullNameUI from 'us-forms-system/lib/js/definitions/fullName'; + +uiSchema: { + fullName: fullNameUI +} +``` +Source: [/src/js/definitions/fullName.js](../../src/js/definitions/fullName.js) + +### Month/year + +The common date field, excluding day field, with basic validation. Call this exported function with the label to be displayed on the field. +```js +import monthYearUI from 'us-forms-system/lib/js/definitions/monthYear'; + +uiSchema: { + serviceStart: monthYearUI('Month/Year Service Started') +} +``` +Source: [/src/js/definitions/monthYear.js](../../src/js/definitions/monthYear.js) + +### Month/year range + +Two common date fields, excluding day field, with validation to ensure the dates form a valid range. Similar to the `Date range` above but without the days. Call this exported function. +```js +import monthYearRangeUI from 'us-forms-system/lib/js/definitions/monthYearRange'; + +uiSchema: { + serviceStart: monthYearRangeUI() +} +``` +Source: [/src/js/definitions/monthYearRange.js](../../src/js/definitions/monthYearRange.js) + +### Non-required full name + +A function that takes a full name `schema` and sets its required field list to `empty`. + +- File: [/src/js/definitions/nonRequiredFullName.js](../../src/js/definitions/nonRequiredFullName.js) +- `uiSchema`: No +- `schema`: Yes +- Function or object: Function + +### Person ID + +A function that allows the user to specify a form of personal identification. For example, the form can ask for a social security number and include a checkbox to specify that the user doesn't have one, allowing them to instead specify a Veterans Affairs file number. + +- File: [/src/js/definitions/personId.js](../../src/js/definitions/personId.js) +- `uiSchema`: Yes +- `schema`: Yes +- Function or object: Function + +### Phone + +A phone number with basic validation. Call this exported function, optionally passing it the label for the field (the default is "Phone"). +```js +import phoneUI from 'us-forms-system/lib/js/definitions/phone'; + +uiSchema: { + homePhone: phoneUI('Home Phone') +} +``` +Source: [/src/js/definitions/phone.js](../../src/js/definitions/phone.js) + +### Social Security Number + +A social security number with default label text and validation. This is an object. +```js +import ssnUI from 'us-forms-system/lib/js/definitions/ssn'; + +uiSchema: { + ssn: ssnUI +} +``` +Source: [/src/js/definitions/ssn.js](../../src/js/definitions/ssn.js) + +### Year + +A text field that validates the current or a past year. This is an object. +```js +import yearUI from 'us-forms-system/lib/js/definitions/year'; + +uiSchema: { + yearBorn: yearUI +} +``` +Source: [/src/js/definitions/year.js](../../src/js/definitions/year.js) + + +[Back to *Building a Form*](./README.md) diff --git a/docs/building-a-form/common-patterns-for-building-forms.md b/docs/building-a-form/common-patterns-for-building-forms.md index 2c7f7ac..c56adc2 100644 --- a/docs/building-a-form/common-patterns-for-building-forms.md +++ b/docs/building-a-form/common-patterns-for-building-forms.md @@ -1,3 +1,5 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) + # Common patterns for building forms Some forms require custom validation, styles, or conditional information based on user input. Use these patterns to address those needs. @@ -151,66 +153,56 @@ To create a block of text with no fields that follow, create an empty view objec ### Conditionally hiding a group of fields -Sometimes fields in a form are siblings to others, but must be hidden conditionally. For example, see this schema snippet from [VA Form 22-5490](https://www.va.gov/vaforms/form_detail.asp?FormNo=22-5490): - -```json -"previousBenefits": { - "type": "object", - "properties": { - "disability": { "type": "boolean" }, - "dic": { "type": "boolean" }, - "chapter31": { "type": "boolean" }, - "ownServiceBenefits": { "type": "string" }, - "chapter35": { "type": "boolean" }, - "chapter33": { "type": "boolean" }, - "transferOfEntitlement": { "type": "boolean" }, - "other": { "type": "string" }, - "veteranFullName": { "$ref": "#/definitions/fullName" }, - "veteranSocialSecurityNumber": { "$ref": "#/definitions/ssn" } +Sometimes fields in a form are siblings to others, but should be hidden conditionally. For example, this schema defines a field named `employed` that is rendered as a checkbox the user can check. If this field is false (the checkbox is not checked) there is no need to display the `jobStartDate` or `monthlyWages` fields: + +```js +schema: { + type: 'object', + properties: { + employed: { type: 'boolean' }, + jobStartDate: { type: 'string' }, + monthlyWages: { type: 'string' }, + otherMonthlyIncome: { type: 'string' } } } + ``` -Only `chapter35`, `chapter33`, `transferOfEntitlement`, `veteranFullName`, and `veteranSocialSecurityNumber` are conditionally hidden, so the `schema` and `uiSchema` are written as: +To accomplish this, the `schema` and `uiSchema` are written as: ```js -// schema -{ - disability: { ... }, - dic: { ... }, - chapter31: { ... }, - ownServiceBenefits: { ... }, - 'view:sponsorServiceOptions': { - chapter35: { ... }, - chapter33: { ... }, - transferOfEntitlement: { ... }, - veteranFullName: { ... }, - veteranSocialSecurityNumber: { ... } - }, - other: { ... } -} - -// uiSchema -{ - disability: { ... }, - dic: { ... }, - chapter31: { ... }, - ownServiceBenefits: { ... }, - 'view:sponsorServiceOptions': { - hideIf: (formData) => /* Some condition here */, - chapter35: { ... }, - chapter33: { ... }, - transferOfEntitlement: { ... }, - veteranFullName: { ... }, - veteranSocialSecurityNumber: { ... } +schema: { + type: 'object', + properties: { + employed: { type: 'boolean' }, + 'view:jobInformation': { + type: 'object', + properties: { + jobStartDate: { type: 'string' }, + monthlyWages: { type: 'string' } + } + }, + otherMonthlyIncome: { type: 'string' } + } +}, +uiSchema: { + employed: { 'ui:title': 'I am employed' }, + 'view:jobInformation': { + 'ui:options': { + hideIf: (formData) => !formData.employed + }, + jobStartDate: { 'ui:title': 'Job start date' }, + monthlyWages: { 'ui:title': 'Monthly wages' }, }, - other: { ... } + otherMonthlyIncome: { 'ui:title': 'Other monthly income' } } ``` -From this, the fields in the `view:sponsorServiceOptions` object are moved up one level and sent alongside `dic` and `chapter31`. The back end doesn't see objects with names that start with `view:`, but it gets all fields inside those objects. +The `hideIf` function is passed a copy of the current `formData` in order to determine the condition upon which the fields are shown. In this example, it will hide the fields unless `employed` is `true`. + +Objects from the form config with names that start with `view:` are not passed to the back-end, but fields within those `view:` objects are passed to the back-end by including them in the parent object. In this example, the fields `jobStartDate` and `monthlyWages` would be included in the same object as `employed` and `otherMonthlyIncome`, while the field for `view:JobInformation` would be filtered out. -## Styling expanded or collapsed fields +### Styling expanded or collapsed fields To indent or otherwise style fields that are expanded or collapsed with the `expandUnder` option, set a class on the controlling field. For example: @@ -297,4 +289,4 @@ If a user types 'open sesame' for the `passPhrase` on the first page, `otherPage **Don't use the pass phrase as a secure login or other authentication mechanism.** Within the source, the text of a pass phrase is clear text, even when it's in a function. -[Back to *Building a Form*](README.md) +[Back to *Building a Form*](./README.md) diff --git a/docs/building-a-form/creating-a-form-config-file.md b/docs/building-a-form/creating-a-form-config-file.md index 85ac816..f625052 100644 --- a/docs/building-a-form/creating-a-form-config-file.md +++ b/docs/building-a-form/creating-a-form-config-file.md @@ -1,286 +1,37 @@ -# Creating a form config file - -Your form is generated from a JSON Schema configuration file called `form.js`, along with a few other key configuration files. For information about the basic files you need to configure a form, see "Create required files" in the *US Forms System Getting Started Guide*. - -### In this guide - -- [Example `form.js` file](#example-form.js-file) -- [About the `schema` and `uiSchema` objects](#about-the-schema-and-uischema-objects) -- [Configuring `uiSchema` using rjsf options](#configuring-uischema-using-rjsf-options) -- [Configuring `uiSchema` using US Form System options](#configuring-uischema-using-us-form-system-options) - -### Example `form.js` file - -This example `form.js` file will get you started with building your form. - -```js -{ - // Prefix string to add to the path for each page. - urlPrefix: '', - - // The introduction page component. To exclude an introduction page, remove this component. - introduction: IntroductionComponent, - - // The confirmation page component that will render after the user successfully submits the form. - confirmation: ConfirmationComponent, - - // The prefix for Google Analytics events that are sent for different form actions. - trackingPrefix: '', - - // The title of the form, rendered on all pages. - title: '', - - // The subtitle of the form, usually the form number. The subtitle is rendered on all pages when there's also a title. - subTitle: '', - - // Schema definitions that can be referenced on any page. These are added to each page's schema in the reducer code, so that you don't have to put all of the common fields in the definitions property in each page schema. For more information on definitions, see schema.definitions below. - defaultDefinitions: {}, - - // When a user begins completing a pre-filled form, this function is called after data migrations are run for pre-filled data in order to make necessary updates to the data or form schema ahead of time. - prefillTransformer: (pages, formData, metadata ) => { pages, formData, metadata } - - // The object that contains the configuration for each chapter. Each property is the key for a chapter. - chapters: { - - // The title of the chapter. - title: '', - - // The object that contains the pages in each chapter. Each property is the key for a page, and should be unique across chapters. - pages: { - - // The URL for the page. - path: 'some-path', - - // The title of the page that renders on the review page. - title: '', - // This can also be a function that receives the current data as a parameter. - title: formData => `A title for ${formData.thing}`, - - // Any initial data that should be set for the form. - initialData: { - field1: 'Default string' - }, - - // Specifies that a page will turn its schema into a page for each item in an array, such as an array of children with a page - // for each child. The schema/uiSchema for this type of page should be built as usual for an array field. - showPagePerItem: true, - // The path to the array. - arrayPath: 'children', - // Items in the array that should not have a page. - itemFilter: () => true, - // You must specify a path with an :index parameter. - path: 'some-path/:index', - - // The JSON schema object for the page, following the JSON Schema format. - schema: { - type: 'object', - // A schema's properties refer to definitions. For example: - // "homePhone": { "$ref": "#/definitions/phone" } - // In the configuration file, the definition for `phone` must be added into definitions in order to be parsed correctly and added to `homePhone`. - definitions: {}, - properties: { - field1: { - type: 'string' - }, - // Fields of type `string`, `boolean`, `number`, and `array` that begin with `view:` are excluded from data that's sent to - // the server. Instead, their children are merged into the parent object and sent to the server. Use these to exclude fields - // from being sent to the server, such as a question that's only used to reveal other questions, or to group related - // questions together to be conditionally revealed that aren't in an object in the schema. - 'view:field2': { - type: 'string' - }, - 'view:artificialGroup'{ - type: 'object', - properties: { - // `view:artificialGroup` is flattened. `subField1` and `subField2` are siblings of `field1` when sent to the API. - subField1: { - type: 'string' - }, - subField2: { - type: 'boolean' - } - } - } - } - }, +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) - // See "About the `schema` and `uiSchema` objects" below. - uiSchema: { - 'ui:title': 'My form', - field1: { - 'ui:title': 'My field' - } - } - } - } -} -``` - -### About the `schema` and `uiSchema` objects - -`uiSchema` is the object that provides information about how the page should be rendered. This object follows the format described in the [react-jsonschema-form documentation](https://github.com/mozilla-services/react-jsonschema-form#the-uischema-object), with some custom us-forms-system additions. The `schema` and `uiSchema` objects should have a similar structure, with the same fields organized in the same way with these exceptions: - -- `uiSchema` doesn't need to contain all the fields found in the `schema` object. -- `uiSchema` doesn't need a `properties` object for sub-fields. - -For example, given this schema: - -```js -{ - type: 'object', - properties: { - field1: { - type: 'string' - } - } -} -``` - -The matching `uiSchema` would be: - -```js -{ - 'ui:title': 'My form', - field1: { - 'ui:title': 'My field' - } -} -``` - -For array fields, you must specify an `items` object that contains the fields for each row in the array in the `uiSchema` object: - -```js -{ - 'ui:title': 'My form', - toursOfDuty: { - items: { - branchName: { - 'ui:title': 'Branch' - } - } - } -} -``` - -### Configuring `uiSchema` using rjsf options - -If you're not already familiar with the rjsf uiSchema options, see the [library docs](https://github.com/mozilla-services/react-jsonschema-form#the-uischema-object). Some commonly used options include: - -- [ui:order](https://github.com/mozilla-services/react-jsonschema-form#object-fields-ordering): An array of field names in the order in which they should appear. -- [ui:widget](https://github.com/mozilla-services/react-jsonschema-form#alternative-widgets): The name of an alternative widget to use for the field, for example, a custom widget called `yesNo`. -- [ui:field](https://github.com/mozilla-services/react-jsonschema-form#custom-field-components): The name of a custom field. -- [classNames](https://github.com/mozilla-services/react-jsonschema-form#custom-css-class-names): The class names to put on the component. - -### Configuring `uiSchema` using US Form System options - -The us-forms-system code includes additional `uiSchema` functionality not found in the rjsf library. - -```js -{ - // Used instead of the `title` property in the JSON Schema. - 'ui:title': '', - // It can also be a component, which passes the current form data as a property. - 'ui:title': ({ formData }) => {`A ${formData.thing} title`}, - - // Used instead of the `description` property in the JSON Schema. This can be a string or a React component, and is normally used on - // object fields in the schema to provide description text or HTML before a block of fields. - 'ui:description': '' || DescriptionComponent, - - // Customizes the field or widget you're using. - 'ui:field': '' || FieldComponent, - 'ui:widget': '' || WidgetComponent, - - // Renders string fields on the review page. Always used when you specify a custom widget component. Can also be used with regular widgets. - 'ui:reviewWidget': WidgetComponent, - - // Provides a function to make a field conditionally required. The data in the whole form, with no page breaks, is the only - // parameter. Don't make a field required in the JSON schema and in addition to using `ui:required` on that field. The index - // argument is provided if you use `ui:required` on data inside an array. - 'ui:required': function (formData, index) { - return true || false; - }, - - // An array of validation functions or objects that you can use to add validation that's not possible through JSON Schema. See below - // for the properties passed to the validation functions and how to use them. - 'ui:validations': [ - /** - * Note the difference between the three data parameters: - * - * @param {any} fieldData The data for the current field being validated - * @param {object} formData The data for all the fields in every page - */ - function (errors, fieldData, formData, fieldSchema, errorMessages) { - errors.addError('My error'); - }, - { - validator: (errors, fieldData, formData, fieldSchema, errorMessages, options) => { - errors.addError('My other error'); - }, - options: {} - } - ], - - // An object with field-specific error messages. Structured by error name (from JSON Schema error types). This is passed to custom - // validations in `ui:validations` in order to allow configurable error messages in a validator. - 'ui:errorMessages': { - 'pattern': 'Please provide a value in the right format' - }, - 'ui:options': { +# Creating a form config file - // An map of enum values to labels that are shown by the select and radio widgets. - labels: { - chapter30: 'A readable description (Chapter 30)' - }, +Your form is generated from a JSON Schema configuration file called `form.js`, along with a few other key configuration files. - // A map of values to a component, text, or JSX (https://reactjs.org/docs/introducing-jsx.html). If your field is a radio widget, - // the content here is shown underneath the radio button for that value when it's selected. - nestedContent: { - 'value':

Some text

- }, +- For information about the basic files you need to configure a form, see "[Create required files](../getting-started/installing-the-us-forms-system-in-an-existing-application.md#create-required-files)." +- For an example `form.js` file, see "[Quick Start: Example `form.js` file](quick-start-example-formjs-file.md)" - // A string of class names that are added to the widget for the current field. `widgetClassNames` is similar to the default - // `classNames` property, but it puts the class names on the input/select/etc element itself, rather than a surrounding `div`. - widgetClassNames: '', +### In this guide - // For array fields, this component is shown when the item in the array is rendered as read-only on a page that is not a review page. - viewField: RowViewComponent, +- [Elements of the form config](#elements-of-the-form-config) +- [How React components are rendered](#how-react-components-are-rendered) - // To show a field only when another field is true, set this option to the property name. It wraps the fields with an - // ExpandingGroup component using the `expandUnder` field as the first question. - expandUnder: '', +### Elements of the form config - // To match to a specific value, use the `expandUnderCondition` option to specify the value that the `expandUnder` field's data should equal. - expandUnderCondition: 'someValue', - // `expandUnderCondition` can also be a function that receives the data from the `expandUnder` field as an argument. - expandUnderCondition: (field) => field === 'someValue' || field === 'someOtherValue', +The form config itself is an object with many properties that determine how your form is rendered. It must contain these elements: +- Top level information about the form, such as title, URL, and whether or not certain features are enabled +- Nested objects for each `chapter` of the form (if you're building a multi-page form). Within each `chapter`, additional nested objects for each `page` within that `chapter`. For more information, see "[Supporting multi-page forms](../customizing-the-library/creating-custom-fields-and-widgets.md#supporting-multi-page-forms)." +- Top-level title and URL information about each `page` of the form, as well as 2 essential objects: + - `schema`: Describes the form fields and the type of data each field accepts + - `uiSchema`: Describes all UI elements of the form fields, such as label text, error message text, or CSS classes - // When using the expandUnder option, you can set `expandUnderClassNames` on the field specified by `expandUnder` and it will add - // classes to the `div` that wraps all of the fields when they're expanded. See cookbook for an example use case. - expandUnderClassNames: '', +The `schema` and `uiSchema` contain the essential information to build all of the form fields. For more information, see "[About the `schema` and `uiSchema` objects](about-the-schema-and-uischema-objects.md)." For a comprehensive example of a form config, with descriptions of the main properties you might include, see "[Quick Start: Example `form.js` file](quick-start-example-formjs-file.md)". - // Hides the specified field on the review page. - hideOnReview: true || false, +### How React components are rendered - // Hides the specified field on the review page when the field value is `false`. - hideOnReviewIfFalse: true || false +The US Forms System code uses the form config to determine which React components to render in order to build your form, usually automatically. React components require props to render properly. These are passed down through the top-level `Form` component, which takes the entire form config itself as a prop. The `Form` component is also connected to the store, so it has access to the form data as well. - // A function that conditionally hides fields in the form. `hideIf` provides the `index` argument when you use `ui:required` on data inside an array. - hideIf: function (formData, index) { - return true || false; - } +You rarely need to create or interact with React components directly to use this library, except in these cases: - // A function that conditionally replaces the current field's schema. `updateSchema` provides the `index` argument when you use `ui:required` on data inside an array. - updateSchema: function (formData, schema, uiSchema, index, pathToCurrentData) { - // This function returns an object with the properties you want to update. Instead of replacing the existing schema, it updates the individual properties. - return { - type: 'string' - }; - }, +- You must manually add the top level `Form` component for every form. For more information, see "[Create required files](../getting-started/installing-the-us-forms-system-in-an-existing-application.md#create-required-files)." +- You may need to build a custom React component that isn't included in the library by default, such as for the introduction and review pages, or for special content that might appear on each a particular form page. For more information, see "[Creating custom fields and widgets](../customizing-the-library/creating-custom-fields-and-widgets.md)." - // Use this when you have an array field that should not be pulled out of the page its in and shown separately on the review page. - keepInPageOnReview: true - } -} -``` +For more information, see "[About the component hierarchy](../customizing-the-library/about-the-react-component-hierarchy.md)." -[Back to *Building a Form*](README.md) +[Back to *Building a Form*](./README.md) diff --git a/docs/building-a-form/quick-start-example-formjs-file.md b/docs/building-a-form/quick-start-example-formjs-file.md new file mode 100644 index 0000000..f960431 --- /dev/null +++ b/docs/building-a-form/quick-start-example-formjs-file.md @@ -0,0 +1,110 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Building a Form*](./README.md) + +# Quick Start: Example `form.js` file + +Use this example `form.js` file to build a basic form. For more information about `form.js`, see "[Creating a form config file](creating-a-form-config-file.md)." + +```js +{ + // Prefix string to add to the path for each page. + urlPrefix: '', + + // The introduction page component. To exclude an introduction page, remove this component. + introduction: IntroductionComponent, + + // The confirmation page component that will render after the user successfully submits the form. + confirmation: ConfirmationComponent, + + // The prefix for Google Analytics events that are sent for different form actions. + trackingPrefix: '', + + // The title of the form, rendered on all pages. + title: '', + + // The subtitle of the form, usually the form number. The subtitle is rendered on all pages when there's also a title. + subTitle: '', + + // Schema definitions that can be referenced on any page. These are added to each page's schema in the reducer code, so that you don't have to put all of the common fields in the definitions property in each page schema. For more information on definitions, see schema.definitions below. + defaultDefinitions: {}, + + // When a user begins completing a pre-filled form, this function is called after data migrations are run for pre-filled data in order to make necessary updates to the data or form schema ahead of time. + prefillTransformer: (pages, formData, metadata ) => { pages, formData, metadata } + + // The object that contains the configuration for each chapter. Each property is the key for a chapter. + chapters: { + + // The title of the chapter. + title: '', + + // The object that contains the pages in each chapter. Each property is the key for a page, and should be unique across chapters. + pages: { + + // The URL for the page. + path: 'some-path', + + // The title of the page that renders on the review page. + title: '', + // This can also be a function that receives the current data as a parameter. + title: formData => `A title for ${formData.thing}`, + + // Any initial data that should be set for the form. + initialData: { + field1: 'Default string' + }, + + // Specifies that a page will turn its schema into a page for each item in an array, such as an array of children with a page + // for each child. The schema/uiSchema for this type of page should be built as usual for an array field. + showPagePerItem: true, + // The path to the array. + arrayPath: 'children', + // Items in the array that should not have a page. + itemFilter: () => true, + // You must specify a path with an :index parameter. + path: 'some-path/:index', + + // The JSON schema object for the page, following the JSON Schema format. + schema: { + type: 'object', + // A schema's properties refer to definitions. For example: + // "homePhone": { "$ref": "#/definitions/phone" } + // In the configuration file, the definition for `phone` must be added into definitions in order to be parsed correctly and added to `homePhone`. + definitions: {}, + properties: { + field1: { + type: 'string' + }, + // Fields of type `string`, `boolean`, `number`, and `array` that begin with `view:` are excluded from data that's sent to + // the server. Instead, their children are merged into the parent object and sent to the server. Use these to exclude fields + // from being sent to the server, such as a question that's only used to reveal other questions, or to group related + // questions together to be conditionally revealed that aren't in an object in the schema. + 'view:field2': { + type: 'string' + }, + 'view:artificialGroup'{ + type: 'object', + properties: { + // `view:artificialGroup` is flattened. `subField1` and `subField2` are siblings of `field1` when sent to the API. + subField1: { + type: 'string' + }, + subField2: { + type: 'boolean' + } + } + } + } + }, + + // See "About the `schema` and `uiSchema` objects" below. + uiSchema: { + 'ui:title': 'My form', + field1: { + 'ui:title': 'My field' + } + } + } + } +} +``` + +[Back to *Building a Form*](./README.md) diff --git a/docs/customizing-the-library/README.md b/docs/customizing-the-library/README.md new file mode 100644 index 0000000..8a3ec12 --- /dev/null +++ b/docs/customizing-the-library/README.md @@ -0,0 +1,13 @@ +:book: [*US Forms System Documentation*](../README.md) + +# Customizing the library + +### [About the React component hierarchy](about-the-react-component-hierarchy.md) + +The US Forms System builds a React application of a form, and determines which React components to render based on the description of the form in the form configuration file. + +### [Creating custom fields and widgets](creating-custom-fields-and-widgets.md) + +You can customize the base library to satisfy the unique requirements of your particular form. + +[Back to *US Forms System Documentation*](../README.md) diff --git a/docs/customizing-the-library/about-the-react-component-hierarchy.md b/docs/customizing-the-library/about-the-react-component-hierarchy.md new file mode 100644 index 0000000..459b719 --- /dev/null +++ b/docs/customizing-the-library/about-the-react-component-hierarchy.md @@ -0,0 +1,174 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Customizing the library*](./README.md) + +# About the React component hierarchy + +The US Forms System builds a React application of a form, and determines which React components to render based on the description of the form in the form configuration file. + +### In this guide + +- [About the `Form` component, fields, and widgets](#about-the-form-component-fields-and-widgets) + - [Example schema: `string` object](#example-schema-string-object) + - [Example schema: `string` with `enum` property](#example-schema-string-with-enum-property) + - [Example schema: `object`](#example-schema-object) + - [Example schema: `ArrayField`](#example-schema-arrayfield) +- [Field component props](#field-component-props) + - [About the `onChange` field component](#about-the-onchange-field-component) + - [About the `uiSchema` field component](#about-the-uischema-field-component) + +### About the `Form` component, fields, and widgets + +At the top level, rjsf uses a `Form` component to take the schema inputs and render a hierarchy of components for each field of the form: + +- *Fields* generally match the `type` attribute in a `schema` object. There are object fields, array fields, number fields, boolean fields, and string fields. Except for arrays and objects, the fields render a label (via `FieldTemplate`) and a widget. To specify a particular field, set the `ui:field` property to a specific field. +- A *widget* is the html input element that accepts data from the user. To specify a particular widget, set the `ui:widget` property to `text`, `email`, `checkbox`, `radio`, `select`, and `textarea`. While there are many widgets provided by rjsf, the defaults are overwritten with these versions. + +The `Form` component is the only React component that you need to manually render in your application. All other components are automatically determined based on the form config. For more information, see "[Create required files](../getting-started/installing-the-us-forms-system-in-an-existing-application.md#create-required-files)." + +##### Example schema: `string` object + +``` +{ + type: 'string' +} +``` + +The two `Field` components determine which fields and widgets to render. `SchemaField` uses the two schemas the library accepts, `schema` and `uiSchema`, to determine what other `Field` component to render. The example chose `StringField` because the schema type was `string`. The `StringField` component then rendered `TextWidget`, based on `schema` and `uiSchema`, because the only information provided was that the field is a string (the default widget type). + +``` + + + + + + + +``` + +##### Example schema: `string` with `enum` property + +``` +{ + type: 'string', + enum: ['first', 'second', 'third'] +} +``` + +The hierarchy for this field uses `SelectWidget` instead of `TextWidget`, because `StringField` detected the `enum` property in the schema. + +``` + + + + + + + +``` + +While in most cases a field component is responsible for rendering a label and a widget, for `object` and `array` schema types, the field component renders additional field components for each of the elements they contain. + +##### Example schema: `object` + +This is an `object` schema with two string fields. + +``` +{ + type: 'object', + properties: { + field1: { + type: 'string' + }, + field2: { + type: 'string' + } + } +} +``` + +The `ObjectField` component renders a `SchemaField` component for each of its properties. Those properties are both `string` types, so it looks like the first hierarchy, but nested. + +``` + + + + + + + + + + + + + + + + + + +``` + +##### Example schema: `ArrayField` + +`ArrayField` renders a `SchemaField` component for each item in the array. The library only uses the array field where each item is an object type schema. + +``` +{ + type: 'array', + items: { + type: 'object', + properties: { + field1: { + type: 'string' + }, + field2: { + type: 'string' + } + } + } +} +``` + +### Field component props + +In order for each component to know what to render, field components pass a collection of props down through the component hierarchy. Most are passed to widget components. + +- `name`: The property name of the current field. For example, the object schema above would be named `field1`. +- `required`: If the field is required or not (i.e. the property name is in the schema's `required` array). +- `schema`: The schema for the specific field. +- `uiSchema`: The ui schema for this field. See "[About the `uiSchema` field component](#about-the-uischema-field-component)." +- `errorSchema`: An object that contains the list of errors for the current field and any child properties, if the field is an array or object. +- `idSchema`: An object that contains the field IDs for the current field and any child properties. The library generates IDs for each field by joining each property name with an underscore. +- `formData`: The actual data entered for the field so far. +- `onChange`: The function that's called when data changes. See "[About the `onChange` field component](#about-the-onchange-field-component)." +- `onBlur`: The function that's called when focus is lost on a widget. + +##### About the `onChange` field component + +When a user enters data, each widget calls `onChange`. Each component in the hierarchy passes an `onChange` handler to child fields. When child data changes, the component combines it with the rest of the data and calls the `onChange` prop passed to it from its parent. + +``` +{ + type: 'object', + properties: { + field1: { + type: 'string' + } + } +} +``` + +In this example: + +1. The user types 'a'. +2. The `TextWidget` for field1 calls `onChange` with 'a'. +3. The `onChange` property came from the parent `ObjectField` component, which puts 'a' in an object as `field1` (`{ field1: 'a' }`), then calls the `onChange` prop it was passed. +4. When it reaches the top-level `Form` component, rjsf runs the JSON Schema validation and passes the results through the component hierarchy. + +Similar to Redux, all state is kept in the `Form` component, or the root of the form. All data processing and validation happens in `Form`, or is triggered by hooks provided by `Form`. The us-forms-system code built on top of this processes the schemas and form data in Redux, triggered by events provided by `Form`. + +##### About the `uiSchema` field component + +Along with the regular JSON Schema, a UI schema for UI-specific options that don't fit within the JSON Schema standard is also optionally defined for each field. The UI schema is passed to the form config file as an object, `uiSchema`, for each field. For more information, see "[Understanding the `uiSchema` object](../building-a-form/about-the-schema-and-uischema-objects.md#understanding-the-uischema-object)." + +[Back to *Customizing the library*](./README.md) diff --git a/docs/customizing-the-library/creating-custom-fields-and-widgets.md b/docs/customizing-the-library/creating-custom-fields-and-widgets.md new file mode 100644 index 0000000..d2ad435 --- /dev/null +++ b/docs/customizing-the-library/creating-custom-fields-and-widgets.md @@ -0,0 +1,61 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Customizing the library*](./README.md) + +# Creating custom fields and widgets + +You can customize the base library to satisfy the unique requirements of your particular form. + +### In this guide + +- [How the us-forms-system uses rjsf](#how-us-forms-system-uses-rjsf) +- [Customizing fields, widgets, and events from rjsf](#customizing-fields-and-widgets-from-rjsf) +- [Supporting multi-page forms](#supporting-multi-page-forms) + +### How us-forms-system uses rjsf + +The us-forms-system code uses react-jsonschema-form, or rjsf, to render form fields, but it builds a scaffolding on top of it to support multi-page forms and common form patterns. Additionally, us-forms-system uses rjsf to create a form configuration spec that allows developers to specify the structure of a multi-page form. + +### Customizing fields, widgets, and events from rjsf + +rjsf passes all field and widget components to `SchemaField` (and most other components) as a `registry` property. To override fields and widgets in the registry, pass components of the same name into the library's main `Form` component. The us-forms-system uses custom versions of these components: + +- `ObjectField` +- `ArrayField` +- `FieldTemplate` +- [`TextWidget`](../building-a-form/available-widgets.md#textwidget) +- [`SelectWidget`](../building-a-form/available-widgets.md#selectwidget) +- [`EmailWidget`](../building-a-form/available-widgets.md#emailwidget) +- [`CheckboxWidget`](../building-a-form/available-widgets.md#checkboxwidget) +- [`RadioWidget`](../building-a-form/available-widgets.md#radiowidget) +- `TextareaWidget` + +The us-forms-system uses these custom fields and widgets: + +- [`YesNoWidget`](../building-a-form/available-widgets.md#yesnowidget) +- [`DateWidget`](../building-a-form/available-widgets.md#datewidget) +- [`SSNWidget`](../building-a-form/available-widgets.md#ssnwidget) +- [`PhoneNumberWidget`](../building-a-form/available-widgets.md#phonenumberwidget) + +Writing custom widgets is similar to writing React components: A value is passed in, and an `onChange` hook is provided for changing data. Other properties like the schemas and field ID are also provided. + +Custom fields receive all properties listed previously for field components in rjsf. + +In addition to customizing fields and widgets, the us-forms-system code hooks into a number of events provided by `Form` to support our form patterns, found in the `FormPage` component. These events are: + +- `validate`: This event is called when validation occurs. We call our custom validation, which reads uiSchema for custom validation hooks that have been included for form fields outside of what JSON Schema provides. +- `transformErrors`: This event is provided when the us-forms-system receives the list of JSON Schema validation errors and can return a transformed list. It replaces the messages with a set of default messages, as well as any messages provided for specific fields in uiSchema. It also moves the errors for required fields from the object level to the field level. Because JSON Schema specifies required fields with a `required` array on an object field schema, any errors about missing data are associated with that object and moved so they're associated with the missing field and rendered with that field on the form. +- `onError`: This event is called if a user tries to submit a form with a validation error. The us-forms-system sets a `submitted` flag in `formContext`, which is an object passed to all fields and components in the rjsf form. The `FieldTemplate` component uses `formContext` to display all error messages to the user. +- `onSubmit`: This event is called when a user submits a form with no validation errors. When this happens, the us-forms-system code looks for the next page in the multi-page form and navigates to it. +- `onChange`: This event is called when a user changes data in the form. The us-forms-system fires a Redux action and updates the store with the new data. The reducer code does several recalculations: + - **Recalculate the required fields for the schema:** You can specify functions in uiSchema that set fields as optional or required based on form data. This runs them and updates the schema. + - **Recalculate which schema fields are hidden and remove that data:** In uiSchema, you can specify fields that are conditionally hidden based on user data. To avoid validation errors from data a user can't see, the us-forms-system updates the schema to add a `ui:hidden` property and remove any user data for those fields. + - **Recalcuate general schema updates:** Because you can make arbitrary changes to the schema based on form data, the us-forms-system must also make those changes, for example, removing options in an `enum` array when a user has entered certain data. + +### Supporting multi-page forms + +Large forms are organized into *chapters* and *pages*. A chapter is a collection of pages, each rendered as a single rjsf form with a schema and `uiSchema` field component. The chapter and page organization is described in a form config file that the us-forms-system uses to generate a list of routes. A user can move through the list of pages until they reach the review page. + +The review page also takes the config file and renders each chapter in an accordion panel. Inside a panel, the us-forms-system uses rjsf to render each page in a read-only view. This view uses simplified widgets and a different `FieldTemplate` component to render each form field in a definition list. The read-only view uses the rjsf `Form` component with no input elements, rendering instead with text. When a user on the review page clicks Edit for a form page, the normal widgets are used and a normal form is rendered. + +Each array item on a review page is rendered as read-only, and individual items can be edited independently. To accomplish this, the review `ArrayField` component renders each item in the array as its own rjsf `Form`. In addition, array fields are taken from the page's read-only view and rendered separately. + +[Back to *Customizing the library*](./README.md) diff --git a/docs/getting-started/README.md b/docs/getting-started/README.md index 423ea6a..5cb203a 100644 --- a/docs/getting-started/README.md +++ b/docs/getting-started/README.md @@ -1,3 +1,5 @@ +:book: [*US Forms System Documentation*](../README.md) + # Getting started with the US Forms System Depending on your needs, you can either create a brand new application from scratch or install the US Forms System in an existing application. @@ -10,8 +12,12 @@ Building a form using the US Forms System requires some minimum front-end develo The US Forms System Starter App creates the initial files, configuration, build process, and web server you need to start building your form immediately. +### [Tutorial: Building a simple address form](tutorial.md) + +Learn the basics of the US Forms System library, with no knowledge of React required, by building a simple form that asks for an address. + ### [Installing the US Forms System in an existing application](installing-the-us-forms-system-in-an-existing-application.md) If you're using an existing React application, you can install the US Forms System in that app. -[Back to *US Forms System Documentation*](/docs/README.md) +[Back to *US Forms System Documentation*](../README.md) diff --git a/docs/getting-started/creating-a-new-application-with-the-us-forms-system-starter-app.md b/docs/getting-started/creating-a-new-application-with-the-us-forms-system-starter-app.md index 2409815..48db580 100644 --- a/docs/getting-started/creating-a-new-application-with-the-us-forms-system-starter-app.md +++ b/docs/getting-started/creating-a-new-application-with-the-us-forms-system-starter-app.md @@ -1,3 +1,5 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Getting Started with the US Forms System*](./README.md) + # Creating a new application with the US Forms System Starter App The US Forms System Starter App creates the initial files, configuration, build process, and web server you need to start building your form. @@ -35,7 +37,7 @@ origin https://github.com/usds/us-forms-system-starter-app.git (push) $ git remote set-url origin https://github.com/YOUR-USERNAME/YOUR-NEW-REPOSITORY-NAME.git # Changes 'origin' to the new remote's URL ``` -7. Review your current remote URL again. `origin` should be set to *your* repository on GitHub, not https://github.com/usds/us-forms-system-starter-app.git: +7. Review your current remote URL again. `origin` should be set to *your* repository on GitHub, not `https://github.com/usds/us-forms-system-starter-app.git`: ```bash $ git remote -v # Lists all remote repositories, along with the URL for those remotes. @@ -71,7 +73,7 @@ Now that you've created a new app in a new repository based on the us-forms-syst Use npm to install dependencies specified in `us-forms-system-starter-app/package-lock.json`. -1. [Make sure Node and npm are installed](tools-for-getting-started-with-the-us-forms-system.md#node-js-and-npm). +1. [Make sure Node and npm are installed](tools-for-getting-started-with-the-us-forms-system.md#nodejs-and-npm). 2. In Terminal (Mac and Linux) or the Command Prompt (Windows), use npm to install dependencies for the Starter App: ```bash $ npm install @@ -79,8 +81,8 @@ $ npm install ### Build and run your app -Once your repository is set up and dependencies are installed, you can begin building your app by editing `/js/config/form.js`. For more information, see "[Creating a form config file](building-a-form/creating-a-form-config-file.md)." +Once your repository is set up and dependencies are installed, you can begin building your app by editing `/js/config/form.js`. For more information, see "[Creating a form config file](../building-a-form/creating-a-form-config-file.md)." To run your app locally, in Terminal (Mac and Linux) or the Command Prompt (Windows), type `npm start`. Once the server has started, you can view your form in a browser window at `localhost:8080`. -[Back to *Getting Started with the US Forms System*](README.md) +[Back to *Getting Started with the US Forms System*](./README.md) diff --git a/docs/getting-started/installing-the-us-forms-system-in-an-existing-application.md b/docs/getting-started/installing-the-us-forms-system-in-an-existing-application.md index bbde7c3..269851f 100644 --- a/docs/getting-started/installing-the-us-forms-system-in-an-existing-application.md +++ b/docs/getting-started/installing-the-us-forms-system-in-an-existing-application.md @@ -1,3 +1,5 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Getting Started with the US Forms System*](./README.md) + # Installing the US Forms System in an existing application If you're using an existing React application, you can install the US Forms System in that app. @@ -33,4 +35,4 @@ To enable your form, create the following files. For an example of these files, - A [routes file](https://github.com/usds/us-forms-system-starter-app/blob/master/js/routes.jsx) that loads `createRoutes` from us-forms-system. This automatically creates the routes from the form config file. - A [reducers file](https://github.com/usds/us-forms-system-starter-app/blob/master/js/reducers.js) that loads `createSchemaFormReducer` from us-forms-system. This creates the app's reducer functions. -[Back to *Getting Started with the US Forms System*](README.md) +[Back to *Getting Started with the US Forms System*](./README.md) diff --git a/docs/getting-started/tools-for-getting-started-with-the-us-forms-system.md b/docs/getting-started/tools-for-getting-started-with-the-us-forms-system.md index 15ad21f..3e0412a 100644 --- a/docs/getting-started/tools-for-getting-started-with-the-us-forms-system.md +++ b/docs/getting-started/tools-for-getting-started-with-the-us-forms-system.md @@ -1,3 +1,5 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Getting Started with the US Forms System*](./README.md) + # Tools for getting started with the US Forms System Building a form using the US Forms System requires some minimum front-end development tools, as well as general knowledge of those tools. Where possible, we'll provide links to information about getting started with these tools. @@ -35,4 +37,4 @@ JSON Schema is a concise method of describing JSON data. We recommend basic fami rjsf is a React component maintained by Mozilla that's used to build web forms based on JSON Schema. For more information, see the [react-jsonschema-form documentation](https://github.com/mozilla-services/react-jsonschema-form#react-jsonschema-form). -[Back to *Getting Started with the US Forms System*](README.md) +[Back to *Getting Started with the US Forms System*](./README.md) diff --git a/docs/getting-started/tutorial.md b/docs/getting-started/tutorial.md new file mode 100644 index 0000000..ffd3b15 --- /dev/null +++ b/docs/getting-started/tutorial.md @@ -0,0 +1,354 @@ +:book: [*US Forms System Documentation*](../README.md) :arrow_right: [*Getting Started with the US Forms System*](./README.md) + +# Tutorial: Building a simple address form + +Learn the basics of the US Forms System library, with no knowledge of React required, by building a simple form that asks for an address. + +### In this tutorial + +- [Step 1: Install the starter app](#step-1-install-the-starter-app) +- [Step 2: Get familiar with the form config](#step-2-get-familiar-with-the-form-config) +- [Step 3: Understand chapters and pages](#step-3-understand-chapters-and-pages) +- [Step 4: Add the `schema` object](#step-4-add-the-schema-object) +- [Step 5: Render the form so far](#step-5-render-the-form-so-far) +- [Step 6: Add a question](#step-6-add-a-question) +- [Step 7: Add the `uiSchema` object](#step-7-add-the-uischema-object) +- [Step 8: Add another `string` question](#step-8-add-another-string-question) +- [Step 9: Add a select field](#step-9-add-a-select-field) +- [Step 10: Add specific data constraints and validation](#step-10-add-specific-data-constraints-and-validation) +- [Review](#review) + +### Step 1: Install the starter app + +The fastest way to start building a form using the US Forms System library is to install the US Forms System Starter App. The starter app includes the initial files, configuration, build process, and web server you need to start building your form immediately. For installation instructions, see "[Creating a new application with the US Forms System Starter App](creating-a-new-application-with-the-us-forms-system-starter-app.md)." + +### Step 2: Get familiar with the form config + +The starter app code includes a file under `js/config/` called `form.js`. This is the main file you'll be interacting with to build your form. It includes almost everything that goes into your form, including the questions your form will contain, how those questions are displayed to the user, and the organization of the different sections of your form. The library works by reading through your form config in order to determine how to build your form. + +There are several properties in the top level of the `formConfig` object. You can learn more about them later in our [Quick start guide](../building-a-form/quick-start-example-formjs-file.md). + +### Step 3: Understand chapters and pages + +In this tutorial, you'll be working on the section of the `formConfig` within `chapters`. Forms are organized into *chapters*, which are broader topics, and *pages*, which are separate pages of questions within that topic. For example, a form may have a chapter on personal information, and separate pages within that chapter for name, address, and other contact information. + +The starter app includes two chapters, `firstChapter` and `secondChapter`. The `firstChapter` object includes the `title` of the chapter, as well as an object containing the `page`s within that chapter. Each page is also an object. + +```js +const formConfig = { + title: 'Form', + subTitle: 'Test', + ... + chapters: { + firstChapter: { + title: 'First Chapter', + pages: { + firstPage: { + path: 'first-chapter/first-page', + title: 'First Page', + ... + } + } + } + } +} +``` + +Each page also includes `path` and `title` properties: `path` takes the url of that page, and `title`, unsurprisingly, takes the title of that page. + +### Step 4: Add the `schema` object + +Now that you have the page structure of your form, you can start adding questions! To do this, add the `schema` object to the `firstPage` object. + +You can think about the information contained in the `schema` object as a description of the type of data each question accepts. The `schema` follows the JSON Schema standard, which specifies the allowed shape of JSON objects. For more information about the JSON Schema Standard, see [Understanding JSON Schema](https://spacetelescope.github.io/understanding-json-schema/). + +Each `schema` object must always contain the following properties: +- `type: 'object'`: this describes the shape of the `schema` data +- `properties: {}`: an object containing the fields within that `schema` + +Note: when you begin building forms, it's common to receive an error for forgetting one of these two required properties in your `schema` objects. The error will appear in your console as `Error found in schema: Missing type in root schema.`. + +With these two properties, your schema should look like this: + +```js +... +firstPage: { + path: 'first-chapter/first-page', + title: 'First Page', + schema: { + type: 'object', + properties: { + + } + } +} +... +``` + +### Step 5: Render the form so far + +Take a look at your form by runing `npm start` in your terminal at the starter app directory. This will automatically open a browser window with your form app rendered. The first page is an introduction, which you'll learn more about later. For now, skip it by clicking the "Start Form" button, which takes you to the first page of the form. + +This is what you should see: +![Blank page](../images/blank-page.png) + +You'll notice a few things: +- The title and subtitle of the form at the top, which you can change at the top level of the `formConfig`. +- A progress bar with 2 segments. Each segment corresponds to a `chapter` of your form; the number of segments to display is determined by the library based on how many `chapter`s you've added to your config. +- The "step" of the form you're on out of how many steps there are. Again, steps correspond to the number of `chapter`s, and the current step is the number of the current `chapter`. +- The `title` of the `chapter`. +- The navigation buttons, "Back" and "Continue". + +There's nothing else on this page because we haven't added any questions yet. + +### Step 6: Add a question + +For your simple address form, you'll start by asking for the street. Add a field for street within the `schema: { properties: {}}` object you just created. + +```js +... + schema: { + type: 'object', + properties: { + street: { + type: 'string' + } + } + } +... +``` + +The webpack server you started when you typed `npm start` in Step 5 should have automatically refreshed the page with your form. Go back to your browser to take a look at what's there. + +This is what you should see: +![Street field](../images/street-field.png) + +Excellent, now you have a form field! But how did the library know to render a text input with a label of `street` based on what you added to the `schema`? + +The `street` field accepts `string` data. For basic data types, an automatic determination is made by the library on what type of HTML form element to render. `string` data renders a text input, a field with an `enum` property renders a select, and `boolean` data renders checkbox. + +The label is taken from the name of the field in the `formConfig`. `street` becomes "street" in your form. But what if we want to change the label text? We can do that be editing the `uiSchema` object, which we'll learn about next. + +### Step 7: Add the `uiSchema` object + +While the `schema` describes the fields of a form and the type of data each field accepts, there are UI-specific things you may want to change about how those fields appear to the user. + +That's where `uiSchema` comes in. Think of the `uiSchema` object as a mirror of `schema`. It usually has the same fields as the `schema` object, but with different properties to specify UI-specific characteristics of that field. + +Returning to the example of changing the label text of the `street` field, pass a property to the `uiSchema` under `street` called `ui:title`. `ui:title` lets you specify the exact label text you want displayed. This is how your `formConfig` would look: + +```js +... + schema: { + type: 'object', + properties: { + street: { + type: 'string' + } + } + }, + uiSchema: { + street: { + 'ui:title': 'Street' + } + } +... +``` +Most properties that are passed to `uiSchema` are prefixed with `ui:`, which means they need to be passed as a quoted string to `formConfig`. + +Go back to your browser window to see the form again. Because you overrode the default label text by adding `'ui:title': 'Street'` to your `formConfig`, your label text has changed from "street" to "Street". + +### Step 8: Add another `string` question + +Now that we understand the basics of adding fields to our `formConfig`, it's time to add more questions. On your own, add a field for the city in the address. The field should use a text input. + +(We'll wait a few minutes while you add the field) + +Did it work? Let's compare our `formConfig`: + +```js +... + schema: { + type: 'object', + properties: { + street: { + type: 'string' + }, + city: { + type: 'string' + } + } + }, + uiSchema: { + street: { + 'ui:title': 'Street' + }, + city: { + 'ui:title': 'City' + } + } +... +``` + +This is now what your form looks like: +![Street and city](../images/street-and-city.png) + +You're now halfway to a complete address! + +### Step 9: Add a select field + +In Step 6, you learned that the library makes default determinations about the type of field to render based on the type of data. This applies to select fields as well. A select is rendered when the data is `type: 'string'` and an `enum` property is passed in. + +The `enum` property takes an array of the valid options for that field. For states, we pass string values to the `enum` array for the states we want to include. We'll just add five so we don't have to add all 50 states and 14 territories. Add a few of your favorite states to your `formConfig`. + +Your `formConfig` for states might look like this: + +```js +... + schema: { + type: 'object', + properties: { + street: { + type: 'string' + }, + city: { + type: 'string' + }, + states: { + type: 'string', + enum: ['AK', 'IL', 'MA', 'TX', 'WY'] + } + } + }, +... +``` + +This is how your form looks after adding this additional `schema` property: +![State dropdown](../images/state-dropdown.png) + +Behold, a dropdown of states! And it contains exactly the states we passed to it: +![Cities in dropdown](../images/cities-in-dropdown.png) + +As you've seen, the state names come directly from the `schema`, but what's rendered isn't as user-friendly as it could be. The back-end may only accept abbreviations, but users should still be able to see the full state name. + +You can specify the text that appears to the user for each option in the uiSchema by passing a `labels` object to that field: + +```js +... + schema: { + type: 'object', + properties: { + street: { + type: 'string' + }, + city: { + type: 'string' + }, + state: { + type: 'string', + enum: ['AK', 'IL', 'MA', 'TX', 'WY'] + }, + } + }, + uiSchema: { + street: { + 'ui:title': 'Street' + }, + city: { + 'ui:title': 'City' + }, + state: { + 'ui:title': 'State', + 'ui:options': { + labels: { + AK: 'Alaska', + IL: 'Illinois', + MA: 'Massachusetts', + TX: 'Texas', + WY: 'Wyoming' + } + } + }, + } +... +``` + +Some properties, like `labels`, are passed in a `ui:options` object within that field. For more information about which properties are available and how they get passed to `uiSchema`, see "[About the `schema` and `uiSchema` objects](../building-a-form/about-the-schema-and-uischema-objects.md)." + +### Step 10: Add specific data constraints and validation + +The last question in this address form lets the user provide a ZIP code. While ZIP codes are usually `string` data, they also need to follow specific formats, which means specifying data constraints in your `formConfig` through the `schema` object. The JSON Schema specification includes several properties to add constraints to the data accepted for that field, including `minLength`, `maxLength`, `format`, and `pattern`. + +To validate ZIP code input, use the `pattern` property, which matches the user entry against a regex, as in this `schema`: +```js +... + schema: { + type: 'object', + properties: { + street: { + type: 'string' + }, + city: { + type: 'string' + }, + state: { + type: 'string', + enum: ['AK', 'IL', 'MA', 'TX', 'WY'] + }, + zip: { + type: 'string', + pattern: '^[0-9]{5,9}$' + } + } + }, +... +``` + +You're part way there; you have a ZIP code field. To test it, type an invalid ZIP code and focus away from the ZIP code field: +![ZIP code pattern error](../images/zip-pattern-error.png) + +While the form caught that the entry wasn't correct and displayed an error, the error isn't particularly human-readable. You can add custom error messages to your form for specific cases. Because custom error messages are displayed to the user, they go in the `uiSchema`: + +```js +... + uiSchema: { + street: { + 'ui:title': 'Street' + }, + city: { + 'ui:title': 'City' + }, + state: { + 'ui:title': 'State', + 'ui:options': { + labels: { + AK: 'Alaska', + IL: 'Illinois', + MA: 'Massachusetts', + TX: 'Texas', + WY: 'Wyoming' + } + } + }, + zip: { + 'ui:title': 'ZIP code', + 'ui:errorMessages': { + 'pattern': 'Please enter a valid US ZIP code between 5 and 9 digits.' + } + } + } +... +``` + +To display a custom error message, pass the `ui:errorMessages` object to `uiSchema` under the field for `zip`. `ui:errorMessages` takes key-value pairs, where the key is the name of the JSON Schema property that the entry violates, and the value is the user-friendly, descriptive message displayed for the violation. + +Now you'll see a much more useful error message:: +![Helpful error message](../images/helpful-error-message.png) + +### Review + +Well done! You've built your first form using only a JSON config file, and you're starting to see the benefits of describing your form rather than building components and UI patterns directly. + +There are many more complex form patterns you can build with the US Forms System, including conditionally expanded fields, custom validation functions, groups of similar questions, and more. Learn more about what's possible in "[Building a form](../building-a-form/README.md)". + +[Back to *Getting Started with the US Forms System*](./README.md) diff --git a/docs/images/blank-page.png b/docs/images/blank-page.png new file mode 100644 index 0000000000000000000000000000000000000000..d248ff79a2e658b300e9bb600ea74f42da1d3e42 GIT binary patch literal 46542 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 literal 0 HcmV?d00001 diff --git a/docs/images/cities-in-dropdown.png b/docs/images/cities-in-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..cfcfc94eece657f443f8a3193f21651f2a1a5d6f GIT binary patch literal 58338 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
  • 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 literal 0 HcmV?d00001 diff --git a/docs/images/street-and-city.png b/docs/images/street-and-city.png new file mode 100644 index 0000000000000000000000000000000000000000..df345653a3e6bd9bee4c320fc29002d0b496da79 GIT binary patch literal 66471 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 literal 0 HcmV?d00001 diff --git a/docs/images/street-field.png b/docs/images/street-field.png new file mode 100644 index 0000000000000000000000000000000000000000..11dcaf412211bc91ed593872941c6c0ade604954 GIT binary patch literal 53241 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
    hq2hjDmryojjLPI z9j#RR5UKDar2Xd|TkTnjf;= z-JOer+r|xQ8w=0@I@%o0*V8d`YJHlE*e!GggoJ*>*Lch8Vdf?&S3=qso>WnV&C6K| z?TU6do;n6&H&0yXt|9$8~*s}yAl>gnAyq-Pb;g>lDH z2bNlGKBtG?_P9Mfu1s00#FKr>V{1Y6*Ru~9@CzbXZ$`wv9$iqysxY5KnH;GQ{=qOS z$I*Wk#^EA&eG|NPl@7cD_l$KlmF$R=jmW3UqZT{p+D3wPG@hHM}w>%JP>djLo?Afrk8nr^30l{g(e0TS}?Kdiped(aQrSd_O4 z;#};UJdGtsq>DLD*g_H~ePprgrc180uCk^kf4O@w^;FLpB#Gk_XB3>0}e4veN+?w}6%w8GBBpwnCiHwTy&JQAv zl{R9Ziy2iX+Yq`IfX5$xp7k~E$zc_FHZ_}z#&pEJO-EcBLPgP+Y~WT>eGJq>K~p)4 z=V_D{T}N++7c1hcv)D#VQR}{?&GE6e^73Y^zMwavxf#=v=Gw9Z3XrY|10A3^a)Qo}{wmzp zI}Bt~SMb&|CzH1!Xb~MjkH-sItkdnXzfg+Lki<*E&PvW+pR@5j!--a(qR0f#QH7F| zl@AJx4wlng8!$lMM3=DrVJu}+iruEaya+QRif)g(-XTx{n)gxcv{d5}Qspg~vEync zt@pMM4xBrAIKEiU7fO{yUo9KUSKaBPcGxsC*y7bd5p?Z5qms|CA&bzuQSY;OfjgEl z@gG{$jF?le4#miEF&C>+&$P<)f0y`&?BGvk*>=Lt$!B z5gvE>%Xu;LVQ!nJM1*Sh_^}BW9}45X$b7YF|F3%wQ|JN%ps3 z9?(6aYt)15?Lac}F?})5##fx-mIX#KtKHDaXtmc2-355f3H!$YSglrUXe771&Xar> zEP~!UAQ8a@uRacATL@gOq`1$MI}jq~n-|Z$FYlBHl6g9y_49eJTXA_ zBz>r&*o)6FGi2eX;R2!-J`R9?zN|vZGyV>bO22M1zb?7ovF-ooC07fmTnxKxyK8f2 zRW{&Y_4%tD?#T@k0^Ih#e$`zoS5UYK>m>;Wl;_}{1g`7w07_K`J=2P{_`gu}k?Uv7 zJOA`-a2~*4sdQ{7FGE4a3gBm7HbmvhPwe<>SF!HizO-)-zMKexT4g*gjjJ@h+=zXbWE q5eAt0Wm>;{gb`K#yQsAx3Y}hZE@Lg40N&EyaY;*0GynX}-~SCwYoI*< literal 0 HcmV?d00001 diff --git a/lib/css/styles.css b/lib/css/styles.css index 5c3974d..d7e18b6 100644 --- a/lib/css/styles.css +++ b/lib/css/styles.css @@ -5067,6 +5067,63 @@ button.form-button-disabled { .form-select-medium { max-width: 12rem; } } +.form-expanding-group-active-radio { + margin-left: 28px; } + +.form-expanding-group-active-radio.form-expanding-group-inner-enter, +.form-expanding-group-active-radio.form-expanding-group-inner-leave-active { + margin-top: -16px; } + +.form-expanding-group-inner-leave { + max-height: 800px; + opacity: 1; + margin-top: 0; } + +.form-expanding-group-inner-enter { + opacity: 0; + max-height: 0; } + +.form-expanding-group-inner-leave.form-expanding-group-inner-leave-active { + transition: margin-top 500ms 0ms, max-height 300ms 0ms, opacity 300ms 0ms; + max-height: 0; + opacity: 0; } + +.form-expanding-group-inner-enter.form-expanding-group-inner-enter-active { + transition: margin-top 300ms 0ms, max-height 700ms 0ms, opacity 500ms 200ms; + max-height: 800px; + opacity: 1; + margin-top: 0 !important; } + +.form-expanding-group > span .usa-input-error { + padding-left: calc(1.5rem - 6px); + right: calc(1.9rem - 6px); } + +.form-expanding-group > span .schemaform-expandUnder-indent .usa-input-error { + padding-left: 1.5rem; + right: 1.9rem; } + +.form-expanding-group { + margin-left: -2rem; + padding-left: 2rem; } + +.form-expanding-group-open { + padding-left: calc(2rem - 7px); + border-left: 7px solid #9bdaf1; } + .form-expanding-group-open .form-expanding-group-open { + border-left-color: transparent; } + +.form-expanding-group-plus { + position: relative; } + .form-expanding-group-plus::after { + content: "+"; + font-size: 20px; + position: absolute; + right: 0; + top: 0; } + +.form-expanding-group-open.form-expanding-group-plus::after { + content: "-"; } + .form-errorable-group > .usa-input-error label { margin-top: 3rem; } diff --git a/lib/css/styles.css.map b/lib/css/styles.css.map index fbc1156..459ea87 100644 --- a/lib/css/styles.css.map +++ b/lib/css/styles.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../node_modules/uswds/src/stylesheets/lib/grid/_box-sizing.scss","../../node_modules/uswds/src/stylesheets/lib/_normalize.scss","styles.css","../../node_modules/foundation-sites/scss/foundation/components/_global.scss","../../node_modules/foundation-sites/scss/foundation/components/_grid.scss","../../node_modules/foundation-sites/scss/foundation/_functions.scss","../../node_modules/foundation-sites/scss/foundation/components/_block-grid.scss","../../node_modules/foundation-sites/scss/foundation/components/_visibility.scss","../../node_modules/uswds/src/stylesheets/core/_fonts.scss","../../node_modules/uswds/src/stylesheets/lib/css3/_font-face.scss","../../node_modules/uswds/src/stylesheets/lib/helpers/_font-source-declaration.scss","../../node_modules/uswds/src/stylesheets/core/_grid.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_outer-container.scss","../../node_modules/uswds/src/stylesheets/core/_variables.scss","../../node_modules/uswds/src/stylesheets/lib/helpers/_directional-values.scss","../../src/scss/base/_b-breakpoints.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_span-columns.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_private.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_omega.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_shift.scss","../../node_modules/uswds/src/stylesheets/core/_utilities.scss","../../node_modules/uswds/src/stylesheets/core/_base.scss","../../node_modules/uswds/src/stylesheets/elements/_buttons.scss","../../node_modules/uswds/src/stylesheets/lib/addons/_font-stacks.scss","../../node_modules/uswds/src/stylesheets/lib/functions/_px-to-rem.scss","../../node_modules/uswds/src/stylesheets/elements/_inputs.scss","../../node_modules/uswds/src/stylesheets/elements/_labels.scss","../../node_modules/uswds/src/stylesheets/elements/_table.scss","../../node_modules/uswds/src/stylesheets/elements/_typography.scss","../../node_modules/uswds/src/stylesheets/components/_accordions.scss","../../node_modules/uswds/src/stylesheets/components/_alerts.scss","../../node_modules/uswds/src/stylesheets/components/_banner.scss","../../node_modules/uswds/src/stylesheets/components/_footer.scss","../../node_modules/uswds/src/stylesheets/components/_forms.scss","../../node_modules/uswds/src/stylesheets/components/_header.scss","../../node_modules/uswds/src/stylesheets/lib/addons/_position.scss","../../node_modules/uswds/src/stylesheets/components/_navigation.scss","../../node_modules/uswds/src/stylesheets/components/_sidenav.scss","../../src/scss/modules/_m-form-layout.scss","../../src/scss/modules/_m-form-confirmation.scss","../../src/scss/base/_b-variables.scss","../../src/scss/modules/_m-form-elements.scss","../../src/scss/modules/_m-form-process.scss","../../src/scss/modules/_m-progress-bar.scss","../../src/scss/modules/_m-schemaform.scss"],"names":[],"mappings":"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I;ECRJ,iBDOC;ECLD,oSCS6C,EAAA;;ADd/C;EACE,+BDee;ECdf,mBDiBI;EChBJ,iBDeC;ECbD,4RCS6C,EAAA;;ADd/C;EACE,4BDuBY;ECtBZ,mBDyBI;ECxBJ,iBDuBC;ECrBD,4RCS6C,EAAA;;ADd/C;EACE,4BD+BY;EC9BZ,mBDiCI;EChCJ,iBD+BC;EC7BD,oSCS6C,EAAA;;ADd/C;EACE,4BDuCY;ECtCZ,mBDyCI;ECxCJ,iBDuCC;ECrCD,gSCS6C,EAAA;;ADd/C;EACE,4BD+CY;EC9CZ,mBDiDI;EChDJ,iBD+CC;EC7CD,wRCS6C,EAAA;;AFwCjD,sBAAsB;AG/DtB;;EC2BE,kBC2GoC;EDzGlC,kBAAU;EACV,mBAAW,ED3Bd;ER0OC;;;IAAoB,aAAY;IAAE,eAAc,EAAI;EACpD;;IAAU,YAAW,EAAI;;AQzO3B;EGyE0B,sBD0DY;ECrDZ,qBDqDY,EF7HrC;EIkBG;IJxBJ;MGyE0B,oBDyDU;MCpDV,mBDoDU,EF5HnC,EAAA;;AAED;EACE,WAAU,EACX;;AI6CG;EJzCF;IK+CE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,YC5EyC,ENY5C;IKkEG;MACE,gBAA8B,EAC/B;ELlEL;IK2CE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENgB5C;IK8DG;MACE,gBAA8B,EAC/B;EL9DL;IKuCE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENoB5C;IK0DG;MACE,gBAA8B,EAC/B;EL1DL;IKmCE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENwB5C;IKsDG;MACE,gBAA8B,EAC/B;ELtDL;IK+BE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENgC5C;IK8CG;MACE,gBAA8B,EAC/B;ILtDL;MAII,gBAAe,EAChB;EAGH;IKuBE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,YC5EyC,ENoC5C;IK0CG;MACE,gBAA8B,EAC/B;EL1CL;IKmBE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,EN4C5C;IKkCG;MACE,gBAA8B,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","file":"styles.css"} \ No newline at end of file +{"version":3,"sources":["../../node_modules/uswds/src/stylesheets/lib/grid/_box-sizing.scss","../../node_modules/uswds/src/stylesheets/lib/_normalize.scss","styles.css","../../node_modules/foundation-sites/scss/foundation/components/_global.scss","../../node_modules/foundation-sites/scss/foundation/components/_grid.scss","../../node_modules/foundation-sites/scss/foundation/_functions.scss","../../node_modules/foundation-sites/scss/foundation/components/_block-grid.scss","../../node_modules/foundation-sites/scss/foundation/components/_visibility.scss","../../node_modules/uswds/src/stylesheets/core/_fonts.scss","../../node_modules/uswds/src/stylesheets/lib/css3/_font-face.scss","../../node_modules/uswds/src/stylesheets/lib/helpers/_font-source-declaration.scss","../../node_modules/uswds/src/stylesheets/core/_grid.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_outer-container.scss","../../node_modules/uswds/src/stylesheets/core/_variables.scss","../../node_modules/uswds/src/stylesheets/lib/helpers/_directional-values.scss","../../src/scss/base/_b-breakpoints.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_span-columns.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_private.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_omega.scss","../../node_modules/uswds/src/stylesheets/lib/grid/_shift.scss","../../node_modules/uswds/src/stylesheets/core/_utilities.scss","../../node_modules/uswds/src/stylesheets/core/_base.scss","../../node_modules/uswds/src/stylesheets/elements/_buttons.scss","../../node_modules/uswds/src/stylesheets/lib/addons/_font-stacks.scss","../../node_modules/uswds/src/stylesheets/lib/functions/_px-to-rem.scss","../../node_modules/uswds/src/stylesheets/elements/_inputs.scss","../../node_modules/uswds/src/stylesheets/elements/_labels.scss","../../node_modules/uswds/src/stylesheets/elements/_table.scss","../../node_modules/uswds/src/stylesheets/elements/_typography.scss","../../node_modules/uswds/src/stylesheets/components/_accordions.scss","../../node_modules/uswds/src/stylesheets/components/_alerts.scss","../../node_modules/uswds/src/stylesheets/components/_banner.scss","../../node_modules/uswds/src/stylesheets/components/_footer.scss","../../node_modules/uswds/src/stylesheets/components/_forms.scss","../../node_modules/uswds/src/stylesheets/components/_header.scss","../../node_modules/uswds/src/stylesheets/lib/addons/_position.scss","../../node_modules/uswds/src/stylesheets/components/_navigation.scss","../../node_modules/uswds/src/stylesheets/components/_sidenav.scss","../../src/scss/modules/_m-form-layout.scss","../../src/scss/modules/_m-form-confirmation.scss","../../src/scss/base/_b-variables.scss","../../src/scss/modules/_m-form-elements.scss","../../src/scss/modules/_m-form-process.scss","../../src/scss/modules/_m-progress-bar.scss","../../src/scss/modules/_m-schemaform.scss"],"names":[],"mappings":"AAGE;EACE,uBAAsB,EACvB;;AAED;EAII,oBAAmB,EACpB;;ACZL,4EAA4E;AAE5E;;;;GAIG;ADHD;ECMA,wBAAuB;EAAE,OAAO;EAChC,2BAA0B;EAAE,OAAO;EACnC,+BAA8B;EAAE,OAAO,EACxC;;AAED;;GAEG;AAEH;EACE,UAAS,EACV;;AAED;gFACgF;AAEhF;;;;;GAKG;AAEH;;;;;;;;;;;;;EAaE,eAAc,EACf;;AAED;;;GAGG;AAEH;;;;EAIE,sBAAqB;EAAE,OAAO;EAC9B,yBAAwB;EAAE,OAAO,EAClC;;AAED;;;GAGG;AAEH;EACE,cAAa;EACb,UAAS,EACV;;AAED;;;GAGG;ACAH;;EDIE,cAAa,EACd;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,8BAA6B,EAC9B;;AAED;;;GAGG;AAEH;;EAEE,WAAU,EACX;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAAyB,EAC1B;;AAED;;GAEG;AAEH;;EAEE,kBAAiB,EAClB;;AAED;;GAEG;AAEH;EACE,mBAAkB,EACnB;;AAED;;;GAGG;AAEH;EACE,eAAc;EACd,iBAAgB,EACjB;;AAED;;GAEG;AAEH;EACE,iBAAgB;EAChB,YAAW,EACZ;;AAED;;GAEG;AAEH;EACE,eAAc,EACf;;AAED;;GAEG;AAEH;;EAEE,eAAc;EACd,eAAc;EACd,mBAAkB;EAClB,yBAAwB,EACzB;;AAED;EACE,YAAW,EACZ;;AAED;EACE,gBAAe,EAChB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,UAAS,EACV;;AAED;;GAEG;AAEH;EACE,iBAAgB,EACjB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,iBAAgB,EACjB;;AAED;;GAEG;AAEH;EACE,wBAAuB;EACvB,UAAS,EACV;;AAED;;GAEG;AAEH;EACE,eAAc,EACf;;AAED;;GAEG;AAEH;;;;EAIE,kCAAiC;EACjC,eAAc,EACf;;AAED;gFACgF;AAEhF;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;EAKE,eAAc;EAAE,OAAO;EACvB,cAAa;EAAE,OAAO;EACtB,UAAS;EAAE,OAAO,EACnB;;AAED;;GAEG;AAEH;EACE,kBAAiB,EAClB;;AAED;;;;;GAKG;AAEH;;EAEE,qBAAoB,EACrB;;AAED;;;;;;GAMG;AAEH;;;;EAIE,2BAA0B;EAAE,OAAO;EACnC,gBAAe;EAAE,OAAO,EACzB;;AAED;;GAEG;AAEH;;EAEE,gBAAe,EAChB;;AAED;;GAEG;AAEH;;EAEE,UAAS;EACT,WAAU,EACX;;AAED;;;GAGG;AAEH;EACE,oBAAmB,EACpB;;AAED;;;;;;GAMG;AAEH;;EAEE,uBAAsB;EAAE,OAAO;EAC/B,WAAU;EAAE,OAAO,EACpB;;AAED;;;;GAIG;AAEH;;EAEE,aAAY,EACb;;AAED;;;GAGG;AAEH;EACE,8BAA6B;EAAE,OAAO;EACtC,wBAAuB;EAAE,OAAO,EACjC;;AAED;;;;GAIG;AAEH;;EAEE,yBAAwB,EACzB;;AAED;;GAEG;AAEH;EACE,0BAAyB;EACzB,cAAa;EACb,+BAA8B,EAC/B;;AAED;;;GAGG;AAEH;EACE,UAAS;EAAE,OAAO;EAClB,WAAU;EAAE,OAAO,EACpB;;AAED;;GAEG;AAEH;EACE,eAAc,EACf;;AAED;;;GAGG;AAEH;EACE,kBAAiB,EAClB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAAyB;EACzB,kBAAiB,EAClB;;AAED;;EAEE,WAAU,EACX;;AEOG;EACE,uBAAsB,EACvB;;AAED;EACE,6BAA2C;EAC3C,SAjEY,EAkEb;;AAED;EACE,mDAA6C;EAC7C,SAtEY,EAuEb;;AAED;EACE,uDAA4C;EAC5C,iBA1E0C,EA2E3C;;AAED;EACE,4EAA8C;EAC9C,iBA/E0C,EAgF3C;;AAED;EACE,uDAA2C;EAC3C,iBAnF0C,EAoF3C;;AAED;EACE,4EAA6C;EAC7C,iBAxF0C,EAyF3C;;AAED;EACE,uDAA4C;EAC5C,iBA5F0C,EA6F3C;;AAED;EACE,6EAA8C;EAC9C,iBAjG0C,EAkG3C;;AAED;EACE,wDAA6C;EAC7C,kBArG0C,EAsG3C;;AAED;EACE,mBAAa,EACd;;AAOD;EAAa,aAAY,EAAI;;AAG7B;;;EArVM,uBAwV0B,EAC/B;;AAPD;EAUO,gBA/dU,EA+doB;;AFhezC;EEoeM,iBA/KQ;EAgLR,YA/KgB;EAgLhB,aA3FkB;EA4FlB,oEA3LyE;EA4LzE,mBA/KkB;EAgLlB,oBAxLqB;EAyLrB,iBAtegB;EAuehB,UAAS;EACT,WAAU;EACV,mBAAkB,EACnB;;AAEH;EAAU,gBAjGkB,EAiGe;;AF1U7C;EE6UU,gBAAe;EAAE,aAAY,EAAI;;AF7U3C;EE+UU,gCAA+B,EAAI;;AAEzC;;;;;;;;;EAKW,2BAA0B,EAClC;;AAIH;EAAQ,uBAAsB,EAAI;;AAClC;EAAS,wBAAuB,EAAI;;AAtStC;EAAoB,aAAY;EAAE,eAAc,EAAI;;AACpD;EAAU,YAAW,EAAI;;AAySvB;EACE,cAAa,EACd;;AAGD;EAAa,mBAAkB,EAAI;;AAMnC;EAAe,oCAAmC;EAAE,mCAAkC,EAAI;;AF3W9F;EE+WM,sBAAqB;EACrB,uBAAsB,EACvB;;AF9JL;EEqKe,aAAY;EAAE,iBAAgB,EAAI;;AAG7C;EAAS,YAAW,EAAI;;AChVxB;EA9JA,eAAc;EACd,mBCsByD;EDrBzD,YAAW,EAyKV;EAbD;IDWkB,aAAY;IAAE,eAAc,EAAI;ECXlD;IDYQ,YAAW,EAAI;ECZvB;;IAxHA,gBAAe;IACf,iBAAgB,EA4HwD;EALxE;IAOU,eAAa;IAAE,gBAAc,EAAG;EAP1C;IAnLA,qBAA6B;IAC7B,gBAAe;IACf,YAAW,EA6LR;IAZH;MDWkB,aAAY;MAAE,eAAc,EAAI;ICXlD;MDYQ,YAAW,EAAI;ICZvB;MArKA,UAAS;MACT,gBAAe;MACf,YAAW,EA8KoD;MAX/D;QDWkB,aAAY;QAAE,eAAc,EAAI;MCXlD;QDYQ,YAAW,EAAI;;ACGvB;;EAhIA,wBAAkC;EAClC,yBAAmC;EAKnC,YAzF+C;EAoGR,YDkNrB,EClG0C;;AAE5D;;;;;EAGI,aD8FoB,EC7FrB;;AAJH;;;;;EAMI,YD0Fc,ECzFf;;AAGH;EArGA;IApDA,mBAAkB;IAyBR,QA/FkB;IA+FmC,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,SAhGkB;IAgGwC,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,eAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,gBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EAmFD;;IA5IA,mBAAkB;IAYlB,wBAAkC;IAClC,yBAAmC;IAgBI,YDkNrB,EClL+C;EAIjE;IA/CA,gBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,YAzF+C,EAwIsC;EAIrF;IA3BY,0BAA8E,EA2BC;EAA3F;IA3BY,iCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAG7F;IACE,YDsKkB;ICrKlB,WAAU;IACV,eAAkC;IAClC,gBAAuC;IACvC,YAAW,EACZ;EAED;;IA5CE,kBAAqC;IACrC,mBAA0C;IAC1C,YAAW,EA2CoF;EAEjG;;IAEE,YD0JkB;ICzJlB,eAAkC;IAClC,gBAAuC,EACxC;EAGD;;IAEE,YAAW,EACZ;EAGD;;IAEE,YD4IkB,EC3InB;EAED;;IAEE,aDwIwB,ECvIzB;EAED;;IAtGE,gBAAe;IACf,iBAAgB,EAwGqD;EAHvE;IAKU,eAAa;IAAE,gBAAc,EAAG;EAL1C;;IA/FE,wBAAkC;IAClC,yBAAmC;IAgBI,YDkNrB,ECzHf,EAAA;;AAuCH;EAzGA;IApDA,mBAAkB;IAyBR,QA/FkB;IA+FmC,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,SAhGkB;IAgGwC,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,eAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,gBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EAmFD;;IA5IA,mBAAkB;IAYlB,wBAAkC;IAClC,yBAAmC;IAgBI,YDkNrB,EClL+C;EAIjE;IA/CA,gBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,YAzF+C,EAwIsC;EAIrF;IA3BY,0BAA8E,EA2BC;EAA3F;IA3BY,iCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAG7F;IACE,YDsKkB;ICrKlB,WAAU;IACV,eAAkC;IAClC,gBAAuC;IACvC,YAAW,EACZ;EAED;;IA5CE,kBAAqC;IACrC,mBAA0C;IAC1C,YAAW,EA2CoF;EAEjG;;IAEE,YD0JkB;ICzJlB,eAAkC;IAClC,gBAAuC,EACxC;EAGD;;IAEE,YAAW,EACZ;EAGD;;IAEE,YD4IkB,EC3InB;EAED;;IAEE,aDwIwB,ECvIzB;EAED;;IAtGE,gBAAe;IACf,iBAAgB,EAwGqD;EAHvE;IAKU,eAAa;IAAE,gBAAc,EAAG;EAL1C;;IA/FE,wBAAkC;IAClC,yBAAmC;IAgBI,YDkNrB,ECzHf;EA2CC;IAjKJ,mBAAkB;IAyBR,QA/FkB;IA+FmC,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,SAhGkB;IAgGwC,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,eAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,gBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF;EALD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA0ItF;EACD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA4ItF,EAAA;;AAGL;EArHA;IApDA,mBAAkB;IAyBR,QA/FkB;IA+FmC,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,SAhGkB;IAgGwC,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,eAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,gBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EALD;IApDA,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EA6B1F;EACD;IAvDA,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EA+B1F;EAmFD;;IA5IA,mBAAkB;IAYlB,wBAAkC;IAClC,yBAAmC;IAgBI,YDkNrB,EClL+C;EAIjE;IA/CA,gBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,WAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,iBAzF+C,EAwIsC;EAArF;IA/CA,YAzF+C,EAwIsC;EAIrF;IA3BY,0BAA8E,EA2BC;EAA3F;IA3BY,iCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,4BAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAA3F;IA3BY,kCAA8E,EA2BC;EAG7F;IACE,YDsKkB;ICrKlB,WAAU;IACV,eAAkC;IAClC,gBAAuC;IACvC,YAAW,EACZ;EAED;;IA5CE,kBAAqC;IACrC,mBAA0C;IAC1C,YAAW,EA2CoF;EAEjG;;IAEE,YD0JkB;ICzJlB,eAAkC;IAClC,gBAAuC,EACxC;EAGD;;IAEE,YAAW,EACZ;EAGD;;IAEE,YD4IkB,EC3InB;EAED;;IAEE,aDwIwB,ECvIzB;EAED;;IAtGE,gBAAe;IACf,iBAAgB,EAwGqD;EAHvE;IAKU,eAAa;IAAE,gBAAc,EAAG;EAL1C;;IA/FE,wBAAkC;IAClC,yBAAmC;IAgBI,YDkNrB,ECzHf;EA2CC;IAjKJ,mBAAkB;IAyBR,QA/FkB;IA+FmC,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,SAhGkB;IAgGwC,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,eAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,gBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,UAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,WAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF;EAhBD;IAjKJ,mBAAkB;IAyBR,gBAhGqC;IAgGgB,YAA4B,EAqJtF;EAVD;IApKJ,mBAAkB;IA0BR,iBAjGqC;IAiGqB,WAAuB,EAuJtF,EAAA;;AF2/BT;EIzuCI,eAAc;EACd,WAAU;EAIR,oBAAuB,EA4DuB;EJ4qClD;ICxiCoB,aAAY;IAAE,eAAc,EAAI;ED2iCpD;IC1iCU,YAAW,EAAI;ED4iCzB;IIxuCI,eAAc;IACd,YHiSgB;IGhShB,aAAY;IAEV,4BDqCqD,ECnCxD;;AAoDC;EAhDF;IACE,iBAAgB;IAIhB,YAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,aAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,gBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,gBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI,EAAA;;AA4C/C;EApDF;IACE,iBAAgB;IAIhB,YAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,aAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,gBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,gBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI,EAAA;;AAgD/C;EAxDF;IACE,iBAAgB;IAIhB,YAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,aAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,iBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,WAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,gBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI;EARjD;IACE,iBAAgB;IAIhB,gBAAoB,EAOrB;IALC;MAAoB,YAAW,EAAI;IACnC;MAAgC,YAAW,EAAI,EAAA;;AC4KjD,oBAAgD;AAChD;EACE;IACE,4BAA2B,EAC5B;EACD;IACE,yBAAwB,EACzB;EAEC;IJgCN,4BAA2B;IAC3B,aAAY;IACZ,YAAW;IACX,kBAAiB;IACjB,WAAU,EIlCH;EACD;IJkBN,+BAA8B;IAC9B,YAAW;IACX,iBAAgB;IAChB,8BAA6B;IAC7B,WAAU,EIpBH;EAGD;IACE,0BAAyB,EAC1B;EACD;IACE,uCAAsC,EACvC;EACD;IACE,oCAAmC,EACpC;EACD;IACE,mBAAkB,EACnB;EACD;IACE,+BAA8B,EAC/B,EAAA;;AA/BL,qBAAgD;AAChD;EACE;IACE,4BAA2B,EAC5B;EACD;IACE,yBAAwB,EACzB;EAEC;IJgCN,4BAA2B;IAC3B,aAAY;IACZ,YAAW;IACX,kBAAiB;IACjB,WAAU,EIlCH;EACD;IJkBN,+BAA8B;IAC9B,YAAW;IACX,iBAAgB;IAChB,8BAA6B;IAC7B,WAAU,EIpBH;EAGD;IACE,0BAAyB,EAC1B;EACD;IACE,uCAAsC,EACvC;EACD;IACE,oCAAmC,EACpC;EACD;IACE,mBAAkB,EACnB;EACD;IACE,+BAA8B,EAC/B,EAAA;;AA/BL,oBAAgD;AAChD;EACE;IACE,4BAA2B,EAC5B;EACD;IACE,yBAAwB,EACzB;EAEC;IJgCN,4BAA2B;IAC3B,aAAY;IACZ,YAAW;IACX,kBAAiB;IACjB,WAAU,EIlCH;EACD;IJkBN,+BAA8B;IAC9B,YAAW;IACX,iBAAgB;IAChB,8BAA6B;IAC7B,WAAU,EIpBH;EAGD;IACE,0BAAyB,EAC1B;EACD;IACE,uCAAsC,EACvC;EACD;IACE,oCAAmC,EACpC;EACD;IACE,mBAAkB,EACnB;EACD;IACE,+BAA8B,EAC/B,EAAA;;AA/BL,qBAAgD;AAChD;EACE;IACE,4BAA2B,EAC5B;EACD;IACE,yBAAwB,EACzB;EAEC;IJgCN,4BAA2B;IAC3B,aAAY;IACZ,YAAW;IACX,kBAAiB;IACjB,WAAU,EIlCH;EACD;IJkBN,+BAA8B;IAC9B,YAAW;IACX,iBAAgB;IAChB,8BAA6B;IAC7B,WAAU,EIpBH;EAGD;IACE,0BAAyB,EAC1B;EACD;IACE,uCAAsC,EACvC;EACD;IACE,oCAAmC,EACpC;EACD;IACE,mBAAkB,EACnB;EACD;IACE,+BAA8B,EAC/B,EAAA;;AA/BL,sBAAgD;AAChD;EACE;IACE,4BAA2B,EAC5B;EACD;IACE,yBAAwB,EACzB;EAEC;IJgCN,4BAA2B;IAC3B,aAAY;IACZ,YAAW;IACX,kBAAiB;IACjB,WAAU,EIlCH;EACD;IJkBN,+BAA8B;IAC9B,YAAW;IACX,iBAAgB;IAChB,8BAA6B;IAC7B,WAAU,EIpBH;EAGD;IACE,0BAAyB,EAC1B;EACD;IACE,uCAAsC,EACvC;EACD;IACE,oCAAmC,EACpC;EACD;IACE,mBAAkB,EACnB;EACD;IACE,+BAA8B,EAC/B,EAAA;;AAWP,2BAA2B;AAC3B;;EACqB,4BAA2B,EAAI;;AACpD;;EACqB,yBAAwB,EAAI;;AAEjD,oCAAoC;AACpC;EAEwB,0BAAyB,EAAI;;AAErD;EAEwB,uCAAsC,EAAI;;AAElE;EAEwB,oCAAmC,EAAI;;AAE/D;EAEwB,8BAA6B,EAAI;;AAEzD;;;EAGwB,+BAA8B,EAAI;;AAG1D;EA5BA;;IA8BuB,4BAA2B,EAAI;EA5BtD;;IA8BuB,yBAAwB,EAAI;EAEjD,oCAAoC;EACpC;IAEwB,0BAAyB,EAAI;EAErD;IAEwB,uCAAsC,EAAI;EAElE;IAEwB,oCAAmC,EAAI;EAE/D;IAEwB,8BAA6B,EAAI;EAEzD;;;IAGwB,+BAA8B,EAAI,EAAA;;AAI5D;EACE;;IACsB,4BAA2B,EAAI;EACrD;;IACsB,yBAAwB,EAAI;EAElD,oCAAoC;EACpC;IAEyB,0BAAyB,EAAI;EAEtD;IAEyB,uCAAsC,EAAI;EAEnE;IAEyB,oCAAmC,EAAI;EAEhE;IAEyB,8BAA6B,EAAI;EAE1D;;;IAGyB,+BAA8B,EAAI,EAAA;;AAI7D,oCAAoC;AACpC;EAAkB,yBAAwB,EAAI;;AAC9C;EAAkB,4BAA2B,EAAI;;AACjD;EAAyB,4BAA2B,EAAI;;AACxD;EAAyB,yBAAwB,EAAI;;AAErD,oCAAoC;AACpC;EAAuB,0BAAyB,EAAI;;AACpD;EAA8B,0BAAyB,EAAI;;AAC3D;EAAuB,uCAAsC,EAAI;;AACjE;EAA8B,uCAAsC,EAAI;;AACxE;EAAuB,oCAAmC,EAAI;;AAC9D;EAA8B,oCAAmC,EAAI;;AACrE;EAAoB,8BAA6B,EAAI;;AACrD;EAA2B,8BAA6B,EAAI;;AAC5D;EAAoB,+BAA8B,EAAI;;AACtD;EAA2B,+BAA8B,EAAI;;AAC7D;EAAoB,+BAA8B,EAAI;;AACtD;EAA2B,+BAA8B,EAAI;;AAE7D,oCAAoC;AACpC;EJ1HA,+BAA8B;EAC9B,YAAW;EACX,iBAAgB;EAChB,8BAA6B;EAC7B,WAAU,EIwHT;;AACD;EJ7HA,+BAA8B;EAC9B,YAAW;EACX,iBAAgB;EAChB,8BAA6B;EAC7B,WAAU,EIgIT;EAPD;IJlHA,4BAA2B;IAC3B,aAAY;IACZ,YAAW;IACX,kBAAiB;IACjB,WAAU,EIoHP;;AAGH,sBAAsB;AAEpB;;EACkB,yBAAwB,EAAI;;AAC9C;EAFA;;IAIoB,0BAAyB,EAAI;EAC/C;;IACkB,yBAAwB,EAAI;EAE9C;IAAuB,0BAAyB,EAAI;EACpD;IAAuB,uCAAsC,EAAI;EACjE;IAAuB,oCAAmC,EAAI;EAC9D;IAAoB,8BAA6B,EAAI;EACrD;IAAoB,+BAA8B,EAAI;EACtD;IAAoB,+BAA8B,EAAI,EAAA;;ACpa5D,iDAAiD;ACU/C;EACE,+BDTe;ECUf,mBDPI;ECQJ,iBDTC;ECWD,gSCS6C,EAAA;;ADd/C;EACE,+BDDe;ECEf,mBDCI;ECAJ,iBDDC;ECGD,wSCS6C,EAAA;;ADd/C;EACE,+BDOe;ECNf,mBDSI;ECRJ,iBDOC;ECLD,oSCS6C,EAAA;;ADd/C;EACE,+BDee;ECdf,mBDiBI;EChBJ,iBDeC;ECbD,4RCS6C,EAAA;;ADd/C;EACE,4BDuBY;ECtBZ,mBDyBI;ECxBJ,iBDuBC;ECrBD,4RCS6C,EAAA;;ADd/C;EACE,4BD+BY;EC9BZ,mBDiCI;EChCJ,iBD+BC;EC7BD,oSCS6C,EAAA;;ADd/C;EACE,4BDuCY;ECtCZ,mBDyCI;ECxCJ,iBDuCC;ECrCD,gSCS6C,EAAA;;ADd/C;EACE,4BD+CY;EC9CZ,mBDiDI;EChDJ,iBD+CC;EC7CD,wRCS6C,EAAA;;AFwCjD,sBAAsB;AG/DtB;;EC2BE,kBC2GoC;EDzGlC,kBAAU;EACV,mBAAW,ED3Bd;ER0OC;;;IAAoB,aAAY;IAAE,eAAc,EAAI;EACpD;;IAAU,YAAW,EAAI;;AQzO3B;EGyE0B,sBD0DY;ECrDZ,qBDqDY,EF7HrC;EIkBG;IJxBJ;MGyE0B,oBDyDU;MCpDV,mBDoDU,EF5HnC,EAAA;;AAED;EACE,WAAU,EACX;;AI6CG;EJzCF;IK+CE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,YC5EyC,ENY5C;IKkEG;MACE,gBAA8B,EAC/B;ELlEL;IK2CE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENgB5C;IK8DG;MACE,gBAA8B,EAC/B;EL9DL;IKuCE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENoB5C;IK0DG;MACE,gBAA8B,EAC/B;EL1DL;IKmCE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENwB5C;IKsDG;MACE,gBAA8B,EAC/B;ELtDL;IK+BE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,ENgC5C;IK8CG;MACE,gBAA8B,EAC/B;ILtDL;MAII,gBAAe,EAChB;EAGH;IKuBE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,YC5EyC,ENoC5C;IK0CG;MACE,gBAA8B,EAC/B;EL1CL;IKmBE,YAAO;IAGL,eAAc;IAed,uBCtE0C;IDuE1C,iBC5EyC,EN4C5C;IKkCG;MACE,gBAA8B,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","file":"styles.css"} \ No newline at end of file diff --git a/lib/js/containers/FormPage.js b/lib/js/containers/FormPage.js index 132dc9b..04a6d6d 100644 --- a/lib/js/containers/FormPage.js +++ b/lib/js/containers/FormPage.js @@ -165,6 +165,9 @@ var FormPage = function (_React$Component) { // And the data should be for just the item in the array data = (0, _get3.default)([route.pageConfig.arrayPath, params.index], data); } + // It should be "safe" to check that this is the first page because it is + // always eligible and enabled, no need to call getPreviousPagePath. + var isFirstRoutePage = route.pageList[0].path === this.props.location.pathname; return _react2.default.createElement( 'div', @@ -188,7 +191,7 @@ var FormPage = function (_React$Component) { _react2.default.createElement( 'div', { className: 'small-6 medium-5 columns' }, - _react2.default.createElement(_ProgressButton2.default, { + !isFirstRoutePage && _react2.default.createElement(_ProgressButton2.default, { onButtonClick: this.goBack, buttonText: 'Back', buttonClass: 'usa-button-secondary', diff --git a/lib/js/containers/FormPage.js.map b/lib/js/containers/FormPage.js.map index 5179ae5..2f2e1ad 100644 --- a/lib/js/containers/FormPage.js.map +++ b/lib/js/containers/FormPage.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../src/js/containers/FormPage.jsx"],"names":["focusForm","scroller","Scroll","scrollToTop","scrollTo","window","Forms","scroll","duration","delay","smooth","FormPage","onChange","formData","newData","props","route","pageConfig","showPagePerItem","arrayPath","params","index","form","data","setData","onSubmit","location","path","pageList","pathname","router","push","goBack","blockScrollOnMount","prevProps","pageKey","contentAfterButtons","formContext","pages","schema","uiSchema","pageClasses","pageClass","properties","items","title","undefined","uploadFile","React","Component","mapStateToProps","state","user","mapDispatchToProps","propTypes","PropTypes","object","isRequired","shape","string","arrayOf","element","func"],"mappings":"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","file":"FormPage.js","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router';\nimport Scroll from 'react-scroll';\nimport _ from 'lodash/fp';\nimport classNames from 'classnames';\n\nimport ProgressButton from '../components/ProgressButton';\nimport SchemaForm from '../components/SchemaForm';\nimport { setData, uploadFile } from '../actions';\nimport { getNextPagePath, getPreviousPagePath } from '../routing';\nimport { focusElement } from '../utilities/ui';\n\nfunction focusForm() {\n focusElement('.nav-header');\n}\n\nconst scroller = Scroll.scroller;\nconst scrollToTop = () => {\n scroller.scrollTo('topScrollElement', window.Forms.scroll || {\n duration: 500,\n delay: 0,\n smooth: true,\n });\n};\n\nclass FormPage extends React.Component {\n componentDidMount() {\n if (!this.props.blockScrollOnMount) {\n scrollToTop();\n focusForm();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.route.pageConfig.pageKey !== this.props.route.pageConfig.pageKey ||\n _.get('params.index', prevProps) !== _.get('params.index', this.props)) {\n scrollToTop();\n focusForm();\n }\n }\n\n onChange = (formData) => {\n let newData = formData;\n if (this.props.route.pageConfig.showPagePerItem) {\n // If this is a per item page, the formData object will have data for a particular\n // row in an array, so we need to update the full form data object and then call setData\n newData = _.set([this.props.route.pageConfig.arrayPath, this.props.params.index], formData, this.props.form.data);\n }\n this.props.setData(newData);\n }\n\n onSubmit = ({ formData }) => {\n const { form, params, route, location } = this.props;\n\n // This makes sure defaulted data on a page with no changes is saved\n // Probably safe to do this for regular pages, too, but it hasn’t been necessary\n if (route.pageConfig.showPagePerItem) {\n const newData = _.set([route.pageConfig.arrayPath, params.index], formData, form.data);\n this.props.setData(newData);\n }\n\n const path = getNextPagePath(route.pageList, form.data, location.pathname);\n\n this.props.router.push(path);\n }\n\n goBack = () => {\n const { form, route: { pageList }, location } = this.props;\n const path = getPreviousPagePath(pageList, form.data, location.pathname);\n\n this.props.router.push(path);\n }\n\n render() {\n const {\n route,\n params,\n form,\n contentAfterButtons,\n formContext\n } = this.props;\n\n let {\n schema,\n uiSchema\n } = form.pages[route.pageConfig.pageKey];\n\n const pageClasses = classNames('form-panel', route.pageConfig.pageClass);\n let data = form.data;\n\n if (route.pageConfig.showPagePerItem) {\n // Instead of passing through the schema/uiSchema to SchemaForm, the\n // current item schema for the array at arrayPath is pulled out of the page state and passed\n schema = schema.properties[route.pageConfig.arrayPath].items[params.index];\n // Similarly, the items uiSchema and the data for just that particular item are passed\n uiSchema = uiSchema[route.pageConfig.arrayPath].items;\n // And the data should be for just the item in the array\n data = _.get([route.pageConfig.arrayPath, params.index], data);\n }\n\n return (\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {contentAfterButtons}\n \n
    \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n form: state.form,\n user: state.user\n };\n}\n\nconst mapDispatchToProps = {\n setData,\n uploadFile\n};\n\nFormPage.propTypes = {\n form: PropTypes.object.isRequired,\n route: PropTypes.shape({\n pageConfig: PropTypes.shape({\n pageKey: PropTypes.string.isRequired,\n schema: PropTypes.object.isRequired,\n uiSchema: PropTypes.object.isRequired\n }),\n pageList: PropTypes.arrayOf(PropTypes.shape({\n path: PropTypes.string.isRequired\n }))\n }),\n contentAfterButtons: PropTypes.element,\n setData: PropTypes.func\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(FormPage));\n\nexport { FormPage };\n"]} \ No newline at end of file +{"version":3,"sources":["../../../src/js/containers/FormPage.jsx"],"names":["focusForm","scroller","Scroll","scrollToTop","scrollTo","window","Forms","scroll","duration","delay","smooth","FormPage","onChange","formData","newData","props","route","pageConfig","showPagePerItem","arrayPath","params","index","form","data","setData","onSubmit","location","path","pageList","pathname","router","push","goBack","blockScrollOnMount","prevProps","pageKey","contentAfterButtons","formContext","pages","schema","uiSchema","pageClasses","pageClass","properties","items","isFirstRoutePage","title","undefined","uploadFile","React","Component","mapStateToProps","state","user","mapDispatchToProps","propTypes","PropTypes","object","isRequired","shape","string","arrayOf","element","func"],"mappings":"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","file":"FormPage.js","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router';\nimport Scroll from 'react-scroll';\nimport _ from 'lodash/fp';\nimport classNames from 'classnames';\n\nimport ProgressButton from '../components/ProgressButton';\nimport SchemaForm from '../components/SchemaForm';\nimport { setData, uploadFile } from '../actions';\nimport { getNextPagePath, getPreviousPagePath } from '../routing';\nimport { focusElement } from '../utilities/ui';\n\nfunction focusForm() {\n focusElement('.nav-header');\n}\n\nconst scroller = Scroll.scroller;\nconst scrollToTop = () => {\n scroller.scrollTo('topScrollElement', window.Forms.scroll || {\n duration: 500,\n delay: 0,\n smooth: true,\n });\n};\n\nclass FormPage extends React.Component {\n componentDidMount() {\n if (!this.props.blockScrollOnMount) {\n scrollToTop();\n focusForm();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.route.pageConfig.pageKey !== this.props.route.pageConfig.pageKey ||\n _.get('params.index', prevProps) !== _.get('params.index', this.props)) {\n scrollToTop();\n focusForm();\n }\n }\n\n onChange = (formData) => {\n let newData = formData;\n if (this.props.route.pageConfig.showPagePerItem) {\n // If this is a per item page, the formData object will have data for a particular\n // row in an array, so we need to update the full form data object and then call setData\n newData = _.set([this.props.route.pageConfig.arrayPath, this.props.params.index], formData, this.props.form.data);\n }\n this.props.setData(newData);\n }\n\n onSubmit = ({ formData }) => {\n const { form, params, route, location } = this.props;\n\n // This makes sure defaulted data on a page with no changes is saved\n // Probably safe to do this for regular pages, too, but it hasn’t been necessary\n if (route.pageConfig.showPagePerItem) {\n const newData = _.set([route.pageConfig.arrayPath, params.index], formData, form.data);\n this.props.setData(newData);\n }\n\n const path = getNextPagePath(route.pageList, form.data, location.pathname);\n\n this.props.router.push(path);\n }\n\n goBack = () => {\n const { form, route: { pageList }, location } = this.props;\n const path = getPreviousPagePath(pageList, form.data, location.pathname);\n\n this.props.router.push(path);\n }\n\n render() {\n const {\n route,\n params,\n form,\n contentAfterButtons,\n formContext\n } = this.props;\n\n let {\n schema,\n uiSchema\n } = form.pages[route.pageConfig.pageKey];\n\n const pageClasses = classNames('form-panel', route.pageConfig.pageClass);\n let data = form.data;\n\n if (route.pageConfig.showPagePerItem) {\n // Instead of passing through the schema/uiSchema to SchemaForm, the\n // current item schema for the array at arrayPath is pulled out of the page state and passed\n schema = schema.properties[route.pageConfig.arrayPath].items[params.index];\n // Similarly, the items uiSchema and the data for just that particular item are passed\n uiSchema = uiSchema[route.pageConfig.arrayPath].items;\n // And the data should be for just the item in the array\n data = _.get([route.pageConfig.arrayPath, params.index], data);\n }\n // It should be \"safe\" to check that this is the first page because it is\n // always eligible and enabled, no need to call getPreviousPagePath.\n const isFirstRoutePage = route.pageList[0].path === this.props.location.pathname;\n\n return (\n
    \n \n
    \n
    \n { !isFirstRoutePage &&\n }\n
    \n
    \n \n
    \n
    \n {contentAfterButtons}\n \n
    \n );\n }\n}\n\nfunction mapStateToProps(state) {\n return {\n form: state.form,\n user: state.user\n };\n}\n\nconst mapDispatchToProps = {\n setData,\n uploadFile\n};\n\nFormPage.propTypes = {\n form: PropTypes.object.isRequired,\n route: PropTypes.shape({\n pageConfig: PropTypes.shape({\n pageKey: PropTypes.string.isRequired,\n schema: PropTypes.object.isRequired,\n uiSchema: PropTypes.object.isRequired\n }),\n pageList: PropTypes.arrayOf(PropTypes.shape({\n path: PropTypes.string.isRequired\n }))\n }),\n contentAfterButtons: PropTypes.element,\n setData: PropTypes.func\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(FormPage));\n\nexport { FormPage };\n"]} \ No newline at end of file diff --git a/lib/js/helpers.js b/lib/js/helpers.js index b960754..f8bec1d 100644 --- a/lib/js/helpers.js +++ b/lib/js/helpers.js @@ -5,10 +5,6 @@ Object.defineProperty(exports, "__esModule", { }); exports.pureWithDeepEquals = undefined; -var _uniq2 = require('lodash/fp/uniq'); - -var _uniq3 = _interopRequireDefault(_uniq2); - var _merge3 = require('lodash/fp/merge'); var _merge4 = _interopRequireDefault(_merge3); @@ -17,6 +13,10 @@ var _intersection2 = require('lodash/fp/intersection'); var _intersection3 = _interopRequireDefault(_intersection2); +var _unset2 = require('lodash/fp/unset'); + +var _unset3 = _interopRequireDefault(_unset2); + var _get2 = require('lodash/fp/get'); var _get3 = _interopRequireDefault(_get2); @@ -25,10 +25,6 @@ var _omit2 = require('lodash/fp/omit'); var _omit3 = _interopRequireDefault(_omit2); -var _unset2 = require('lodash/fp/unset'); - -var _unset3 = _interopRequireDefault(_unset2); - var _set2 = require('lodash/fp/set'); var _set3 = _interopRequireDefault(_set2); @@ -37,6 +33,10 @@ var _assign2 = require('lodash/fp/assign'); var _assign3 = _interopRequireDefault(_assign2); +var _uniq2 = require('lodash/fp/uniq'); + +var _uniq3 = _interopRequireDefault(_uniq2); + var _matches2 = require('lodash/fp/matches'); var _matches3 = _interopRequireDefault(_matches2); @@ -47,6 +47,7 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [ exports.isActivePage = isActivePage; exports.getActivePages = getActivePages; +exports.getActiveProperties = getActiveProperties; exports.getInactivePages = getInactivePages; exports.createFormPageList = createFormPageList; exports.createPageListByChapter = createPageListByChapter; @@ -56,7 +57,7 @@ exports.formatISOPartialDate = formatISOPartialDate; exports.formatReviewDate = formatReviewDate; exports.parseISODate = parseISODate; exports.filterViewFields = filterViewFields; -exports.filterInactivePages = filterInactivePages; +exports.filterInactivePageData = filterInactivePageData; exports.stringifyFormReplacer = stringifyFormReplacer; exports.isInProgress = isInProgress; exports.transformForSubmit = transformForSubmit; @@ -92,6 +93,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } +// An active page is one that will be shown to the user. +// Pages become inactive if they are conditionally shown based +// on answers to previous questions. function isActivePage(page, data) { if (typeof page.depends === 'function') { return page.depends(data, page.index); @@ -112,6 +116,16 @@ function getActivePages(pages, data) { }); } +function getActiveProperties(activePages) { + var allProperties = []; + activePages.forEach(function (page) { + if (page.schema) { + allProperties.push.apply(allProperties, _toConsumableArray(Object.keys(page.schema.properties))); + } + }); + return (0, _uniq3.default)(allProperties); +} + function getInactivePages(pages, data) { return pages.filter(function (page) { return !isActivePage(page, data); @@ -304,10 +318,17 @@ function filterViewFields(data) { }, {}); } -function filterInactivePages(pages, form) { - return pages.reduce(function (formData, page) { +function filterInactivePageData(inactivePages, activePages, form) { + var activeProperties = getActiveProperties(activePages); + var newData = void 0; + + return inactivePages.reduce(function (formData, page) { return Object.keys(page.schema.properties).reduce(function (currentData, prop) { - return (0, _unset3.default)(prop, currentData); + newData = currentData; + if (!activeProperties.includes(prop)) { + delete newData[prop]; + } + return newData; }, formData); }, form.data); } @@ -361,8 +382,9 @@ function isInProgress(pathName) { function transformForSubmit(formConfig, form) { var replacer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringifyFormReplacer; + var activePages = getActivePages(createFormPageList(formConfig), form.data); var inactivePages = getInactivePages(createFormPageList(formConfig), form.data); - var withoutInactivePages = filterInactivePages(inactivePages, form); + var withoutInactivePages = filterInactivePageData(inactivePages, activePages, form); var withoutViewFields = filterViewFields(withoutInactivePages); return JSON.stringify(withoutViewFields, replacer) || '{}'; diff --git a/lib/js/helpers.js.map b/lib/js/helpers.js.map index 26847f4..b92fb0b 100644 --- a/lib/js/helpers.js.map +++ b/lib/js/helpers.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/js/helpers.js"],"names":["isActivePage","getActivePages","getInactivePages","createFormPageList","createPageListByChapter","createPageList","createRoutes","formatISOPartialDate","formatReviewDate","parseISODate","filterViewFields","filterInactivePages","stringifyFormReplacer","isInProgress","transformForSubmit","getArrayFields","hasFieldsOtherThanArray","getNonArraySchema","checkValidSchema","setArrayRecordTouched","createUSAStateLabels","expandArrayPages","getPageKeys","getActiveChapters","omitRequired","recordEvent","page","data","depends","index","Array","isArray","some","condition","undefined","pages","filter","formConfig","Object","keys","chapters","reduce","pageList","chapter","chapterTitle","title","map","chapterKey","pageKey","concat","formPages","introduction","path","urlPrefix","routes","component","FormPage","pageConfig","ReviewPage","confirmation","onEnter","nextState","replace","formatDayMonth","val","dayOrMonth","toString","Number","length","formatYear","month","day","year","dateString","monthYear","split","newData","nextProp","field","newArray","item","startsWith","form","formData","schema","properties","currentData","prop","key","value","country","street","city","postalCode","zipcode","fields","every","widget","id","confirmationCode","file","newValues","v","pathName","trimmedPathname","endsWith","replacer","inactivePages","withoutInactivePages","withoutViewFields","JSON","stringify","isHiddenField","findArrays","obj","ui","type","push","definitions","uiSchema","forEach","$ref","newProperties","current","next","newSchema","required","newRequired","pureWithDeepEquals","props","nextProps","errors","join","propName","items","additionalItems","Error","prefix","states","USA","label","generateArrayPages","arrayPages","arrayPath","itemFilter","result","acc","nextPage","lastArrayPath","currentList","showPagePerItem","newList","eligiblePageList","expandedPageList","p","window","dataLayer"],"mappings":"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","file":"helpers.js","sourcesContent":["import _ from 'lodash/fp';\nimport shouldUpdate from 'recompose/shouldUpdate';\nimport { deepEquals } from '@department-of-veterans-affairs/react-jsonschema-form/lib/utils';\n\nimport FormPage from './containers/FormPage';\nimport ReviewPage from './review/ReviewPage';\n\nexport function isActivePage(page, data) {\n if (typeof page.depends === 'function') {\n return page.depends(data, page.index);\n }\n\n if (Array.isArray(page.depends)) {\n return page.depends.some(condition => _.matches(condition)(data));\n }\n\n return page.depends === undefined || _.matches(page.depends)(data);\n}\n\nexport function getActivePages(pages, data) {\n return pages.filter(page => isActivePage(page, data));\n}\n\nexport function getInactivePages(pages, data) {\n return pages.filter(page => !isActivePage(page, data));\n}\n\nexport function createFormPageList(formConfig) {\n return Object.keys(formConfig.chapters)\n .reduce((pageList, chapter) => {\n const chapterTitle = formConfig.chapters[chapter].title;\n const pages = Object.keys(formConfig.chapters[chapter].pages)\n .map(page => {\n return _.assign(formConfig.chapters[chapter].pages[page], {\n chapterTitle,\n chapterKey: chapter,\n pageKey: page\n });\n });\n return pageList.concat(pages);\n }, []);\n}\n\nexport function createPageListByChapter(formConfig) {\n return Object.keys(formConfig.chapters)\n .reduce((chapters, chapter) => {\n const pages = Object.keys(formConfig.chapters[chapter].pages)\n .map(page => {\n return _.assign(formConfig.chapters[chapter].pages[page], {\n pageKey: page,\n chapterKey: chapter\n });\n });\n return _.set(chapter, pages, chapters);\n }, {});\n}\n\nexport function createPageList(formConfig, formPages) {\n let pageList = formPages;\n if (formConfig.introduction) {\n pageList = [\n {\n pageKey: 'introduction',\n path: 'introduction'\n }\n ].concat(pageList);\n }\n\n return pageList\n .concat([\n {\n pageKey: 'review-and-submit',\n path: 'review-and-submit',\n chapterKey: 'review'\n }\n ])\n .map(page => {\n return _.set('path', `${formConfig.urlPrefix || ''}${page.path}`, page);\n });\n}\n\n/*\n * Create the routes based on a form config. This goes through each chapter in a form\n * config, pulls out the config for each page, then generates a list of Route components with the\n * config as props\n */\nexport function createRoutes(formConfig) {\n const formPages = createFormPageList(formConfig);\n const pageList = createPageList(formConfig, formPages);\n let routes = formPages\n .map(page => {\n return {\n path: page.path,\n component: page.component || FormPage,\n pageConfig: page,\n pageList,\n urlPrefix: formConfig.urlPrefix\n };\n });\n if (formConfig.introduction) {\n routes = [\n {\n path: 'introduction',\n component: formConfig.introduction,\n formConfig,\n pageList\n }\n ].concat(routes);\n }\n\n return routes.concat([\n {\n path: 'review-and-submit',\n formConfig,\n component: ReviewPage,\n pageList\n },\n {\n path: 'confirmation',\n component: formConfig.confirmation\n },\n {\n path: '*',\n onEnter: (nextState, replace) => replace(formConfig.urlPrefix || '/')\n }\n ]);\n}\n\nfunction formatDayMonth(val) {\n if (val) {\n const dayOrMonth = val.toString();\n if (Number(dayOrMonth) && dayOrMonth.length === 1) {\n return `0${val}`;\n } else if (Number(dayOrMonth)) {\n return dayOrMonth;\n }\n }\n\n return 'XX';\n}\n\nfunction formatYear(val) {\n if (!val || !val.length) {\n return 'XXXX';\n }\n\n return val;\n}\n\nexport function formatISOPartialDate({ month, day, year }) {\n if (month || day || year) {\n return `${formatYear(year)}-${formatDayMonth(month)}-${formatDayMonth(day)}`;\n }\n\n return undefined;\n}\n\nexport function formatReviewDate(dateString, monthYear = false) {\n if (dateString) {\n const [year, month, day] = dateString.split('-', 3);\n\n return monthYear\n ? `${formatDayMonth(month)}/${formatYear(year)}`\n : `${formatDayMonth(month)}/${formatDayMonth(day)}/${formatYear(year)}`;\n }\n\n return undefined;\n}\nexport function parseISODate(dateString) {\n if (typeof dateString === 'string') {\n const [year, month, day] = dateString.split('-', 3);\n\n return {\n month: month === 'XX' ? '' : Number(month).toString(),\n day: day === 'XX' ? '' : Number(day).toString(),\n year: year === 'XXXX' ? '' : year\n };\n }\n\n return {\n month: '',\n day: '',\n year: ''\n };\n}\n\n/*\n * Removes 'view:' fields from data object\n */\nexport function filterViewFields(data) {\n return Object.keys(data).reduce((newData, nextProp) => {\n const field = data[nextProp];\n\n if (Array.isArray(field)) {\n const newArray = field.map((item) => filterViewFields(item));\n\n return _.set(nextProp, newArray, newData);\n }\n\n if (typeof field === 'object') {\n if (nextProp.startsWith('view:')) {\n return _.assign(newData, filterViewFields(field));\n }\n return _.set(nextProp, filterViewFields(field), newData);\n }\n\n if (!nextProp.startsWith('view:')) {\n return _.set(nextProp, field, newData);\n }\n\n return newData;\n }, {});\n}\n\nexport function filterInactivePages(pages, form) {\n return pages.reduce((formData, page) => {\n return Object.keys(page.schema.properties)\n .reduce((currentData, prop) => {\n return _.unset(prop, currentData);\n }, formData);\n }, form.data);\n}\n\nexport function stringifyFormReplacer(key, value) {\n // an object with country is an address\n if (value && typeof value.country !== 'undefined' &&\n (!value.street || !value.city || (!value.postalCode && !value.zipcode))) {\n return undefined;\n }\n\n // clean up empty objects, which we have no reason to send\n if (typeof value === 'object') {\n const fields = Object.keys(value);\n if (fields.length === 0 || fields.every(field => value[field] === undefined)) {\n return undefined;\n }\n\n // autosuggest widgets save value and label info, but we should just return the value\n if (value.widget === 'autosuggest') {\n return value.id;\n }\n\n // Exclude file data\n if (value.confirmationCode && value.file) {\n return _.omit('file', value);\n }\n }\n\n // Clean up empty objects in arrays\n if (Array.isArray(value)) {\n const newValues = value.filter(v => !!stringifyFormReplacer(key, v));\n // If every item in the array is cleared, remove the whole array\n return newValues.length > 0 ? newValues : undefined;\n }\n\n return value;\n}\n\nexport function isInProgress(pathName) {\n const trimmedPathname = pathName.replace(/\\/$/, '');\n return !(\n trimmedPathname.endsWith('introduction')\n || trimmedPathname.endsWith('confirmation')\n || trimmedPathname.endsWith('form-saved')\n || trimmedPathname.endsWith('error')\n );\n}\n\n/*\n * Normal transform for schemaform data\n */\nexport function transformForSubmit(formConfig, form, replacer = stringifyFormReplacer) {\n const inactivePages = getInactivePages(createFormPageList(formConfig), form.data);\n const withoutInactivePages = filterInactivePages(inactivePages, form);\n const withoutViewFields = filterViewFields(withoutInactivePages);\n\n return JSON.stringify(withoutViewFields, replacer) || '{}';\n}\n\nfunction isHiddenField(schema) {\n return !!schema['ui:collapsed'] || !!schema['ui:hidden'];\n}\n\n/*\n * Pull the array fields from a schema. Used to separate out array fields\n * from the rest of page to be displayed on the review page\n */\nexport function getArrayFields(data) {\n const fields = [];\n const findArrays = (obj, ui, path = []) => {\n if (obj.type === 'array' && !isHiddenField(obj) && !_.get('ui:options.keepInPageOnReview', ui)) {\n fields.push({\n path,\n schema: _.set('definitions', data.schema.definitions, obj),\n uiSchema: _.get(path, data.uiSchema) || data.uiSchema\n });\n }\n\n if (obj.type === 'object' && !isHiddenField(obj)) {\n Object.keys(obj.properties).forEach(prop => {\n findArrays(obj.properties[prop], ui[prop], path.concat(prop));\n });\n }\n };\n\n findArrays(data.schema, data.uiSchema);\n\n return fields;\n}\n\n/*\n * Checks to see if there are non array fields in a page schema, so that\n * we don’t show a blank page header on the review page if a page is just\n * a growable table\n */\nexport function hasFieldsOtherThanArray(schema) {\n if (schema.$ref || (schema.type !== 'object' && schema.type !== 'array')) {\n return true;\n }\n\n if (schema.type === 'object') {\n return Object.keys(schema.properties).some(nextProp => {\n return hasFieldsOtherThanArray(schema.properties[nextProp]);\n });\n }\n\n return false;\n}\n\n/*\n * Return a schema without array fields. If the schema has only array fields,\n * then return undefined (because there’s no reason to use an object schema with\n * no properties)\n */\nexport function getNonArraySchema(schema, uiSchema = {}) {\n if (schema.type === 'array' && !_.get('ui:options.keepInPageOnReview', uiSchema)) {\n return undefined;\n }\n\n if (schema.type === 'object') {\n const newProperties = Object.keys(schema.properties).reduce((current, next) => {\n const newSchema = getNonArraySchema(schema.properties[next], uiSchema[next]);\n\n if (typeof newSchema === 'undefined') {\n return _.unset(next, current);\n }\n\n if (newSchema !== schema.properties[next]) {\n return _.set(next, newSchema, current);\n }\n\n return current;\n }, schema.properties);\n\n if (Object.keys(newProperties).length === 0) {\n return undefined;\n }\n\n if (newProperties !== schema.properties) {\n let newSchema = _.set('properties', newProperties, schema);\n if (newSchema.required) {\n const newRequired = _.intersection(Object.keys(newSchema.properties), newSchema.required);\n if (newRequired.length !== newSchema.required.length) {\n newSchema = _.set('required', newRequired, newSchema);\n }\n }\n\n return newSchema;\n }\n }\n\n return schema;\n}\n\n\nexport const pureWithDeepEquals = shouldUpdate((props, nextProps) => {\n return !deepEquals(props, nextProps);\n});\n\n/**\n * Recursively checks to see if the schema is valid.\n *\n * Note: This only returns true. If the schema is invalid, an error is thrown to\n * stop everything.\n *\n * @param {Object} schema - The schema in question\n * @return {bool} - true if we succeed\n * @throws {Error} - If the schema is invalid\n */\nexport function checkValidSchema(schema, errors = [], path = ['root']) {\n if (typeof schema.type !== 'string') {\n errors.push(`Missing type in ${path.join('.')} schema.`);\n }\n\n if (schema.type === 'object') {\n if (typeof schema.properties !== 'object') {\n errors.push(`Missing object properties in ${path.join('.')} schema.`);\n } else {\n Object.keys(schema.properties).forEach((propName) => {\n checkValidSchema(schema.properties[propName], errors, [...path, propName]);\n });\n }\n }\n\n if (schema.type === 'array') {\n // We check this both before items is turned into additionalItems and after,\n // so we need to account for it being both an object and an array.\n if (Array.isArray(schema.items)) {\n if (!schema.additionalItems) {\n errors.push(`${path.join('.')} should contain additionalItems when items is an array.`);\n }\n schema.items.forEach((item, index) => {\n checkValidSchema(item, errors, [...path, 'items', index]);\n });\n } else if (typeof schema.items === 'object') {\n if (schema.additionalItems) {\n errors.push(`${path.join('.')} should not contain additionalItems when items is an object.`);\n }\n checkValidSchema(schema.items, errors, [...path, 'items']);\n } else {\n errors.push(`Missing items schema in ${path.join('.')}.`);\n }\n\n // Check additionalItems\n if (schema.additionalItems) {\n checkValidSchema(schema.additionalItems, errors, [...path, 'additionalItems']);\n }\n }\n\n // We’ve recursed all the way back down to ['root']; throw an error containing\n // all the error messages.\n if (path.length === 1 && errors.length > 0) {\n // console.log(`Error${errors.length > 1 ? 's' : ''} found in schema: ${errors.join(' ')} -- ${path.join('.')}`);\n throw new Error(`Error${errors.length > 1 ? 's' : ''} found in schema: ${errors.join(' ')}`);\n } else {\n return true;\n }\n}\n\nexport function setArrayRecordTouched(prefix, index) {\n return { [`${prefix}_${index}`]: true };\n}\n\nexport function createUSAStateLabels(states) {\n return states.USA.reduce((current, { label, value }) => {\n return _.merge(current, { [value]: label });\n }, {});\n}\n\n/*\n * Take a list of pages and create versions of them\n * for each item in an array\n */\nfunction generateArrayPages(arrayPages, data) {\n const items = _.get(arrayPages[0].arrayPath, data) || [];\n return items\n .reduce((pages, item, index) =>\n pages.concat(arrayPages.map(page =>\n _.assign(page, {\n path: page.path.replace(':index', index),\n index\n })\n )),\n []\n )\n // doing this after the map so that we don’t change indexes\n .filter(page => !page.itemFilter || page.itemFilter(items[page.index]));\n}\n\n/*\n * We want to generate the pages we need for each item in the array\n * being used by an array page. We also want to group those pages by item.\n * So, this grabs contiguous sections of array pages and at the end generates\n * the right number of pages based on the items in the array\n */\nexport function expandArrayPages(pageList, data) {\n const result = pageList.reduce((acc, nextPage) => {\n const { lastArrayPath, arrayPages, currentList } = acc;\n // If we see an array page and we’re starting a section or in the middle of one, just add it\n // to the temporary array\n if (nextPage.showPagePerItem && (!lastArrayPath || nextPage.arrayPath === lastArrayPath)) {\n arrayPages.push(nextPage);\n return acc;\n // Now we’ve hit the end of a section of array pages using the same array, so\n // actually generate the pages now\n } else if (nextPage.arrayPath !== lastArrayPath && !!arrayPages.length) {\n const newList = currentList.concat(generateArrayPages(arrayPages, data), nextPage);\n return _.assign(acc, {\n lastArrayPath: null,\n arrayPages: [],\n currentList: newList\n });\n }\n\n return _.set('currentList', currentList.concat(nextPage), acc);\n }, { lastArrayPath: null, arrayPages: [], currentList: [] });\n\n if (result.arrayPages.length > 0) {\n return result.currentList.concat(generateArrayPages(result.arrayPages, data));\n }\n\n return result.currentList;\n}\n\n/**\n * getPageKeys returns a list of keys for the currently active pages\n *\n * @param pages {Array} List of page configs\n * @param formData {Object} Current form data\n * @returns {Array} A list of page keys from the page config\n * and the index if it’s a pagePerItem page\n */\nexport function getPageKeys(pages, formData) {\n const eligiblePageList = getActivePages(pages, formData);\n const expandedPageList = expandArrayPages(eligiblePageList, formData);\n\n return expandedPageList.map(page => {\n let pageKey = page.pageKey;\n if (typeof page.index !== 'undefined') {\n pageKey += page.index;\n }\n return pageKey;\n });\n}\n\n/**\n * getActiveChapters returns the list of chapter keys with active pages\n *\n * @param formConfig {Object} The form config object\n * @param formData {Object} The current form data\n * @returns {Array} The list of chapter key strings for active chapters\n */\nexport function getActiveChapters(formConfig, formData) {\n const formPages = createFormPageList(formConfig);\n const pageList = createPageList(formConfig, formPages);\n const eligiblePageList = getActivePages(pageList, formData);\n const expandedPageList = expandArrayPages(eligiblePageList, formData);\n\n return _.uniq(expandedPageList.map(p => p.chapterKey).filter(key => !!key && key !== 'review'));\n}\n\n/**\n * Returns the schema, omitting all `required` arrays.\n *\n * @param schema {Object}\n * @returns {Object} The schema without any `required` arrays\n */\nexport function omitRequired(schema) {\n if (typeof schema !== 'object' || Array.isArray(schema)) {\n return schema;\n }\n\n const newSchema = _.omit('required', schema);\n Object.keys(newSchema).forEach(key => {\n newSchema[key] = omitRequired(newSchema[key]);\n });\n\n return newSchema;\n}\n\n/**\n * Helper function for reporting events to Google Analytics. An alias for window.dataLayer.push.\n * @module platform/monitoring/record-event\n * @see https://developers.google.com/tag-manager/devguide\n * @param {object} data - The event data that will be sent to GA.\n */\nexport function recordEvent(data) {\n return window.dataLayer && window.dataLayer.push(data);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/js/helpers.js"],"names":["isActivePage","getActivePages","getActiveProperties","getInactivePages","createFormPageList","createPageListByChapter","createPageList","createRoutes","formatISOPartialDate","formatReviewDate","parseISODate","filterViewFields","filterInactivePageData","stringifyFormReplacer","isInProgress","transformForSubmit","getArrayFields","hasFieldsOtherThanArray","getNonArraySchema","checkValidSchema","setArrayRecordTouched","createUSAStateLabels","expandArrayPages","getPageKeys","getActiveChapters","omitRequired","recordEvent","page","data","depends","index","Array","isArray","some","condition","undefined","pages","filter","activePages","allProperties","forEach","schema","push","Object","keys","properties","formConfig","chapters","reduce","pageList","chapter","chapterTitle","title","map","chapterKey","pageKey","concat","formPages","introduction","path","urlPrefix","routes","component","FormPage","pageConfig","ReviewPage","confirmation","onEnter","nextState","replace","formatDayMonth","val","dayOrMonth","toString","Number","length","formatYear","month","day","year","dateString","monthYear","split","newData","nextProp","field","newArray","item","startsWith","inactivePages","form","activeProperties","formData","currentData","prop","includes","key","value","country","street","city","postalCode","zipcode","fields","every","widget","id","confirmationCode","file","newValues","v","pathName","trimmedPathname","endsWith","replacer","withoutInactivePages","withoutViewFields","JSON","stringify","isHiddenField","findArrays","obj","ui","type","definitions","uiSchema","$ref","newProperties","current","next","newSchema","required","newRequired","pureWithDeepEquals","props","nextProps","errors","join","propName","items","additionalItems","Error","prefix","states","USA","label","generateArrayPages","arrayPages","arrayPath","itemFilter","result","acc","nextPage","lastArrayPath","currentList","showPagePerItem","newList","eligiblePageList","expandedPageList","p","window","dataLayer"],"mappings":"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","file":"helpers.js","sourcesContent":["import _ from 'lodash/fp';\nimport shouldUpdate from 'recompose/shouldUpdate';\nimport { deepEquals } from '@department-of-veterans-affairs/react-jsonschema-form/lib/utils';\n\nimport FormPage from './containers/FormPage';\nimport ReviewPage from './review/ReviewPage';\n\n// An active page is one that will be shown to the user.\n// Pages become inactive if they are conditionally shown based\n// on answers to previous questions.\nexport function isActivePage(page, data) {\n if (typeof page.depends === 'function') {\n return page.depends(data, page.index);\n }\n\n if (Array.isArray(page.depends)) {\n return page.depends.some(condition => _.matches(condition)(data));\n }\n\n return page.depends === undefined || _.matches(page.depends)(data);\n}\n\nexport function getActivePages(pages, data) {\n return pages.filter(page => isActivePage(page, data));\n}\n\nexport function getActiveProperties(activePages) {\n const allProperties = [];\n activePages.forEach(page => {\n if (page.schema) {\n allProperties.push(...Object.keys(page.schema.properties));\n }\n });\n return _.uniq(allProperties);\n}\n\nexport function getInactivePages(pages, data) {\n return pages.filter(page => !isActivePage(page, data));\n}\n\nexport function createFormPageList(formConfig) {\n return Object.keys(formConfig.chapters)\n .reduce((pageList, chapter) => {\n const chapterTitle = formConfig.chapters[chapter].title;\n const pages = Object.keys(formConfig.chapters[chapter].pages)\n .map(page => {\n return _.assign(formConfig.chapters[chapter].pages[page], {\n chapterTitle,\n chapterKey: chapter,\n pageKey: page\n });\n });\n return pageList.concat(pages);\n }, []);\n}\n\nexport function createPageListByChapter(formConfig) {\n return Object.keys(formConfig.chapters)\n .reduce((chapters, chapter) => {\n const pages = Object.keys(formConfig.chapters[chapter].pages)\n .map(page => {\n return _.assign(formConfig.chapters[chapter].pages[page], {\n pageKey: page,\n chapterKey: chapter\n });\n });\n return _.set(chapter, pages, chapters);\n }, {});\n}\n\nexport function createPageList(formConfig, formPages) {\n let pageList = formPages;\n if (formConfig.introduction) {\n pageList = [\n {\n pageKey: 'introduction',\n path: 'introduction'\n }\n ].concat(pageList);\n }\n\n return pageList\n .concat([\n {\n pageKey: 'review-and-submit',\n path: 'review-and-submit',\n chapterKey: 'review'\n }\n ])\n .map(page => {\n return _.set('path', `${formConfig.urlPrefix || ''}${page.path}`, page);\n });\n}\n\n/*\n * Create the routes based on a form config. This goes through each chapter in a form\n * config, pulls out the config for each page, then generates a list of Route components with the\n * config as props\n */\nexport function createRoutes(formConfig) {\n const formPages = createFormPageList(formConfig);\n const pageList = createPageList(formConfig, formPages);\n let routes = formPages\n .map(page => {\n return {\n path: page.path,\n component: page.component || FormPage,\n pageConfig: page,\n pageList,\n urlPrefix: formConfig.urlPrefix\n };\n });\n if (formConfig.introduction) {\n routes = [\n {\n path: 'introduction',\n component: formConfig.introduction,\n formConfig,\n pageList\n }\n ].concat(routes);\n }\n\n return routes.concat([\n {\n path: 'review-and-submit',\n formConfig,\n component: ReviewPage,\n pageList\n },\n {\n path: 'confirmation',\n component: formConfig.confirmation\n },\n {\n path: '*',\n onEnter: (nextState, replace) => replace(formConfig.urlPrefix || '/')\n }\n ]);\n}\n\nfunction formatDayMonth(val) {\n if (val) {\n const dayOrMonth = val.toString();\n if (Number(dayOrMonth) && dayOrMonth.length === 1) {\n return `0${val}`;\n } else if (Number(dayOrMonth)) {\n return dayOrMonth;\n }\n }\n\n return 'XX';\n}\n\nfunction formatYear(val) {\n if (!val || !val.length) {\n return 'XXXX';\n }\n\n return val;\n}\n\nexport function formatISOPartialDate({ month, day, year }) {\n if (month || day || year) {\n return `${formatYear(year)}-${formatDayMonth(month)}-${formatDayMonth(day)}`;\n }\n\n return undefined;\n}\n\nexport function formatReviewDate(dateString, monthYear = false) {\n if (dateString) {\n const [year, month, day] = dateString.split('-', 3);\n\n return monthYear\n ? `${formatDayMonth(month)}/${formatYear(year)}`\n : `${formatDayMonth(month)}/${formatDayMonth(day)}/${formatYear(year)}`;\n }\n\n return undefined;\n}\nexport function parseISODate(dateString) {\n if (typeof dateString === 'string') {\n const [year, month, day] = dateString.split('-', 3);\n\n return {\n month: month === 'XX' ? '' : Number(month).toString(),\n day: day === 'XX' ? '' : Number(day).toString(),\n year: year === 'XXXX' ? '' : year\n };\n }\n\n return {\n month: '',\n day: '',\n year: ''\n };\n}\n\n/*\n * Removes 'view:' fields from data object\n */\nexport function filterViewFields(data) {\n return Object.keys(data).reduce((newData, nextProp) => {\n const field = data[nextProp];\n\n if (Array.isArray(field)) {\n const newArray = field.map((item) => filterViewFields(item));\n\n return _.set(nextProp, newArray, newData);\n }\n\n if (typeof field === 'object') {\n if (nextProp.startsWith('view:')) {\n return _.assign(newData, filterViewFields(field));\n }\n return _.set(nextProp, filterViewFields(field), newData);\n }\n\n if (!nextProp.startsWith('view:')) {\n return _.set(nextProp, field, newData);\n }\n\n return newData;\n }, {});\n}\n\nexport function filterInactivePageData(inactivePages, activePages, form) {\n const activeProperties = getActiveProperties(activePages);\n let newData;\n\n return inactivePages.reduce((formData, page) => {\n return Object.keys(page.schema.properties)\n .reduce((currentData, prop) => {\n newData = currentData;\n if (!activeProperties.includes(prop)) {\n delete newData[prop];\n }\n return newData;\n }, formData);\n }, form.data);\n}\n\nexport function stringifyFormReplacer(key, value) {\n // an object with country is an address\n if (value && typeof value.country !== 'undefined' &&\n (!value.street || !value.city || (!value.postalCode && !value.zipcode))) {\n return undefined;\n }\n\n // clean up empty objects, which we have no reason to send\n if (typeof value === 'object') {\n const fields = Object.keys(value);\n if (fields.length === 0 || fields.every(field => value[field] === undefined)) {\n return undefined;\n }\n\n // autosuggest widgets save value and label info, but we should just return the value\n if (value.widget === 'autosuggest') {\n return value.id;\n }\n\n // Exclude file data\n if (value.confirmationCode && value.file) {\n return _.omit('file', value);\n }\n }\n\n // Clean up empty objects in arrays\n if (Array.isArray(value)) {\n const newValues = value.filter(v => !!stringifyFormReplacer(key, v));\n // If every item in the array is cleared, remove the whole array\n return newValues.length > 0 ? newValues : undefined;\n }\n\n return value;\n}\n\nexport function isInProgress(pathName) {\n const trimmedPathname = pathName.replace(/\\/$/, '');\n return !(\n trimmedPathname.endsWith('introduction')\n || trimmedPathname.endsWith('confirmation')\n || trimmedPathname.endsWith('form-saved')\n || trimmedPathname.endsWith('error')\n );\n}\n\n/*\n * Normal transform for schemaform data\n */\nexport function transformForSubmit(formConfig, form, replacer = stringifyFormReplacer) {\n const activePages = getActivePages(createFormPageList(formConfig), form.data);\n const inactivePages = getInactivePages(createFormPageList(formConfig), form.data);\n const withoutInactivePages = filterInactivePageData(inactivePages, activePages, form);\n const withoutViewFields = filterViewFields(withoutInactivePages);\n\n return JSON.stringify(withoutViewFields, replacer) || '{}';\n}\n\nfunction isHiddenField(schema) {\n return !!schema['ui:collapsed'] || !!schema['ui:hidden'];\n}\n\n/*\n * Pull the array fields from a schema. Used to separate out array fields\n * from the rest of page to be displayed on the review page\n */\nexport function getArrayFields(data) {\n const fields = [];\n const findArrays = (obj, ui, path = []) => {\n if (obj.type === 'array' && !isHiddenField(obj) && !_.get('ui:options.keepInPageOnReview', ui)) {\n fields.push({\n path,\n schema: _.set('definitions', data.schema.definitions, obj),\n uiSchema: _.get(path, data.uiSchema) || data.uiSchema\n });\n }\n\n if (obj.type === 'object' && !isHiddenField(obj)) {\n Object.keys(obj.properties).forEach(prop => {\n findArrays(obj.properties[prop], ui[prop], path.concat(prop));\n });\n }\n };\n\n findArrays(data.schema, data.uiSchema);\n\n return fields;\n}\n\n/*\n * Checks to see if there are non array fields in a page schema, so that\n * we don’t show a blank page header on the review page if a page is just\n * a growable table\n */\nexport function hasFieldsOtherThanArray(schema) {\n if (schema.$ref || (schema.type !== 'object' && schema.type !== 'array')) {\n return true;\n }\n\n if (schema.type === 'object') {\n return Object.keys(schema.properties).some(nextProp => {\n return hasFieldsOtherThanArray(schema.properties[nextProp]);\n });\n }\n\n return false;\n}\n\n/*\n * Return a schema without array fields. If the schema has only array fields,\n * then return undefined (because there’s no reason to use an object schema with\n * no properties)\n */\nexport function getNonArraySchema(schema, uiSchema = {}) {\n if (schema.type === 'array' && !_.get('ui:options.keepInPageOnReview', uiSchema)) {\n return undefined;\n }\n\n if (schema.type === 'object') {\n const newProperties = Object.keys(schema.properties).reduce((current, next) => {\n const newSchema = getNonArraySchema(schema.properties[next], uiSchema[next]);\n\n if (typeof newSchema === 'undefined') {\n return _.unset(next, current);\n }\n\n if (newSchema !== schema.properties[next]) {\n return _.set(next, newSchema, current);\n }\n\n return current;\n }, schema.properties);\n\n if (Object.keys(newProperties).length === 0) {\n return undefined;\n }\n\n if (newProperties !== schema.properties) {\n let newSchema = _.set('properties', newProperties, schema);\n if (newSchema.required) {\n const newRequired = _.intersection(Object.keys(newSchema.properties), newSchema.required);\n if (newRequired.length !== newSchema.required.length) {\n newSchema = _.set('required', newRequired, newSchema);\n }\n }\n\n return newSchema;\n }\n }\n\n return schema;\n}\n\n\nexport const pureWithDeepEquals = shouldUpdate((props, nextProps) => {\n return !deepEquals(props, nextProps);\n});\n\n/**\n * Recursively checks to see if the schema is valid.\n *\n * Note: This only returns true. If the schema is invalid, an error is thrown to\n * stop everything.\n *\n * @param {Object} schema - The schema in question\n * @return {bool} - true if we succeed\n * @throws {Error} - If the schema is invalid\n */\nexport function checkValidSchema(schema, errors = [], path = ['root']) {\n if (typeof schema.type !== 'string') {\n errors.push(`Missing type in ${path.join('.')} schema.`);\n }\n\n if (schema.type === 'object') {\n if (typeof schema.properties !== 'object') {\n errors.push(`Missing object properties in ${path.join('.')} schema.`);\n } else {\n Object.keys(schema.properties).forEach((propName) => {\n checkValidSchema(schema.properties[propName], errors, [...path, propName]);\n });\n }\n }\n\n if (schema.type === 'array') {\n // We check this both before items is turned into additionalItems and after,\n // so we need to account for it being both an object and an array.\n if (Array.isArray(schema.items)) {\n if (!schema.additionalItems) {\n errors.push(`${path.join('.')} should contain additionalItems when items is an array.`);\n }\n schema.items.forEach((item, index) => {\n checkValidSchema(item, errors, [...path, 'items', index]);\n });\n } else if (typeof schema.items === 'object') {\n if (schema.additionalItems) {\n errors.push(`${path.join('.')} should not contain additionalItems when items is an object.`);\n }\n checkValidSchema(schema.items, errors, [...path, 'items']);\n } else {\n errors.push(`Missing items schema in ${path.join('.')}.`);\n }\n\n // Check additionalItems\n if (schema.additionalItems) {\n checkValidSchema(schema.additionalItems, errors, [...path, 'additionalItems']);\n }\n }\n\n // We’ve recursed all the way back down to ['root']; throw an error containing\n // all the error messages.\n if (path.length === 1 && errors.length > 0) {\n // console.log(`Error${errors.length > 1 ? 's' : ''} found in schema: ${errors.join(' ')} -- ${path.join('.')}`);\n throw new Error(`Error${errors.length > 1 ? 's' : ''} found in schema: ${errors.join(' ')}`);\n } else {\n return true;\n }\n}\n\nexport function setArrayRecordTouched(prefix, index) {\n return { [`${prefix}_${index}`]: true };\n}\n\nexport function createUSAStateLabels(states) {\n return states.USA.reduce((current, { label, value }) => {\n return _.merge(current, { [value]: label });\n }, {});\n}\n\n/*\n * Take a list of pages and create versions of them\n * for each item in an array\n */\nfunction generateArrayPages(arrayPages, data) {\n const items = _.get(arrayPages[0].arrayPath, data) || [];\n return items\n .reduce((pages, item, index) =>\n pages.concat(arrayPages.map(page =>\n _.assign(page, {\n path: page.path.replace(':index', index),\n index\n })\n )),\n []\n )\n // doing this after the map so that we don’t change indexes\n .filter(page => !page.itemFilter || page.itemFilter(items[page.index]));\n}\n\n/*\n * We want to generate the pages we need for each item in the array\n * being used by an array page. We also want to group those pages by item.\n * So, this grabs contiguous sections of array pages and at the end generates\n * the right number of pages based on the items in the array\n */\nexport function expandArrayPages(pageList, data) {\n const result = pageList.reduce((acc, nextPage) => {\n const { lastArrayPath, arrayPages, currentList } = acc;\n // If we see an array page and we’re starting a section or in the middle of one, just add it\n // to the temporary array\n if (nextPage.showPagePerItem && (!lastArrayPath || nextPage.arrayPath === lastArrayPath)) {\n arrayPages.push(nextPage);\n return acc;\n // Now we’ve hit the end of a section of array pages using the same array, so\n // actually generate the pages now\n } else if (nextPage.arrayPath !== lastArrayPath && !!arrayPages.length) {\n const newList = currentList.concat(generateArrayPages(arrayPages, data), nextPage);\n return _.assign(acc, {\n lastArrayPath: null,\n arrayPages: [],\n currentList: newList\n });\n }\n\n return _.set('currentList', currentList.concat(nextPage), acc);\n }, { lastArrayPath: null, arrayPages: [], currentList: [] });\n\n if (result.arrayPages.length > 0) {\n return result.currentList.concat(generateArrayPages(result.arrayPages, data));\n }\n\n return result.currentList;\n}\n\n/**\n * getPageKeys returns a list of keys for the currently active pages\n *\n * @param pages {Array} List of page configs\n * @param formData {Object} Current form data\n * @returns {Array} A list of page keys from the page config\n * and the index if it’s a pagePerItem page\n */\nexport function getPageKeys(pages, formData) {\n const eligiblePageList = getActivePages(pages, formData);\n const expandedPageList = expandArrayPages(eligiblePageList, formData);\n\n return expandedPageList.map(page => {\n let pageKey = page.pageKey;\n if (typeof page.index !== 'undefined') {\n pageKey += page.index;\n }\n return pageKey;\n });\n}\n\n/**\n * getActiveChapters returns the list of chapter keys with active pages\n *\n * @param formConfig {Object} The form config object\n * @param formData {Object} The current form data\n * @returns {Array} The list of chapter key strings for active chapters\n */\nexport function getActiveChapters(formConfig, formData) {\n const formPages = createFormPageList(formConfig);\n const pageList = createPageList(formConfig, formPages);\n const eligiblePageList = getActivePages(pageList, formData);\n const expandedPageList = expandArrayPages(eligiblePageList, formData);\n\n return _.uniq(expandedPageList.map(p => p.chapterKey).filter(key => !!key && key !== 'review'));\n}\n\n/**\n * Returns the schema, omitting all `required` arrays.\n *\n * @param schema {Object}\n * @returns {Object} The schema without any `required` arrays\n */\nexport function omitRequired(schema) {\n if (typeof schema !== 'object' || Array.isArray(schema)) {\n return schema;\n }\n\n const newSchema = _.omit('required', schema);\n Object.keys(newSchema).forEach(key => {\n newSchema[key] = omitRequired(newSchema[key]);\n });\n\n return newSchema;\n}\n\n/**\n * Helper function for reporting events to Google Analytics. An alias for window.dataLayer.push.\n * @module platform/monitoring/record-event\n * @see https://developers.google.com/tag-manager/devguide\n * @param {object} data - The event data that will be sent to GA.\n */\nexport function recordEvent(data) {\n return window.dataLayer && window.dataLayer.push(data);\n}\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 15f17b1..dfd4bcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "us-forms-system", - "version": "1.0.1", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,10 +9,10 @@ "resolved": "https://registry.npmjs.org/@department-of-veterans-affairs/react-jsonschema-form/-/react-jsonschema-form-1.0.0.tgz", "integrity": "sha512-HECDkslizFdoGaXmI8VSkw6Y9PmtVwImxa+tHSdmnC4qZSpFa50QI4ixk/0GHOOsdVMmi8bHZZ45MAXMOkYChw==", "requires": { - "jsonschema": "1.2.4", - "lodash.topath": "4.5.2", - "prop-types": "15.6.1", - "setimmediate": "1.0.5" + "jsonschema": "^1.0.2", + "lodash.topath": "^4.5.2", + "prop-types": "^15.6.1", + "setimmediate": "^1.0.5" } }, "@sinonjs/formatio": { @@ -36,8 +36,8 @@ "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "abab": { @@ -64,7 +64,7 @@ "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "dev": true, "requires": { - "acorn": "5.5.3" + "acorn": "^5.0.0" } }, "acorn-jsx": { @@ -73,7 +73,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -90,8 +90,8 @@ "integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==", "dev": true, "requires": { - "acorn": "5.5.3", - "xtend": "4.0.1" + "acorn": "^5.4.1", + "xtend": "^4.0.1" } }, "ajv": { @@ -100,10 +100,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -142,8 +142,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "aproba": { @@ -158,8 +158,8 @@ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -168,7 +168,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "aria-query": { @@ -178,7 +178,7 @@ "dev": true, "requires": { "ast-types-flow": "0.0.7", - "commander": "2.15.1" + "commander": "^2.11.0" }, "dependencies": { "commander": { @@ -237,8 +237,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-map": { @@ -259,7 +259,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -297,9 +297,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -341,7 +341,7 @@ "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -388,12 +388,12 @@ "integrity": "sha512-cv9v1mYYBcAnZq4MHseJ9AIdjQmNahnpCpPO46oTkQJS2GggsBp2azHjNpAuQ95Epvsg+AIsyjYhfI9YwFxGSA==", "dev": true, "requires": { - "browserslist": "3.2.8", - "caniuse-lite": "1.0.30000855", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.22", - "postcss-value-parser": "3.3.0" + "browserslist": "^3.2.8", + "caniuse-lite": "^1.0.30000851", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.22", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "browserslist": { @@ -402,8 +402,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000855", - "electron-to-chromium": "1.3.48" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "caniuse-lite": { @@ -453,21 +453,21 @@ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.15.1", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "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" }, "dependencies": { "anymatch": { @@ -477,8 +477,8 @@ "dev": true, "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "arr-diff": { @@ -488,7 +488,7 @@ "dev": true, "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -505,9 +505,9 @@ "dev": true, "optional": 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" } }, "chokidar": { @@ -517,15 +517,15 @@ "dev": true, "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "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" } }, "commander": { @@ -541,7 +541,7 @@ "dev": true, "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -551,7 +551,7 @@ "dev": true, "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "glob-parent": { @@ -561,7 +561,7 @@ "dev": true, "optional": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "is-extglob": { @@ -576,7 +576,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "kind-of": { @@ -586,7 +586,7 @@ "dev": true, "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "micromatch": { @@ -596,19 +596,19 @@ "dev": true, "optional": 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" } } } @@ -619,9 +619,9 @@ "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": { @@ -630,25 +630,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "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.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "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" } }, "babel-eslint": { @@ -657,10 +657,10 @@ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0" + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" } }, "babel-generator": { @@ -669,14 +669,14 @@ "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.10", - "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": { @@ -685,9 +685,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": { @@ -696,9 +696,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": { @@ -707,9 +707,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": { @@ -718,10 +718,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": { @@ -730,10 +730,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.10" + "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": { @@ -742,9 +742,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": { @@ -753,10 +753,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": { @@ -765,11 +765,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": { @@ -778,8 +778,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": { @@ -788,8 +788,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-module-imports": { @@ -799,7 +799,7 @@ "dev": true, "requires": { "babel-types": "7.0.0-beta.3", - "lodash": "4.17.10" + "lodash": "^4.2.0" }, "dependencies": { "babel-types": { @@ -808,9 +808,9 @@ "integrity": "sha512-36k8J+byAe181OmCMawGhw+DtKO7AwexPVtsPXoMfAkjtZgoCX3bEuHWfdE5sYxRM8dojvtG/+O08M0Z/YDC6w==", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" } }, "to-fast-properties": { @@ -827,8 +827,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": { @@ -837,9 +837,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -848,11 +848,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": { @@ -861,12 +861,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": { @@ -875,8 +875,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-messages": { @@ -885,7 +885,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -894,7 +894,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-dynamic-import-node": { @@ -903,7 +903,7 @@ "integrity": "sha512-yeDwKaLgGdTpXL7RgGt5r6T4LmnTza/hUn5Ul8uZSGGMtEjYo13Nxai7SQaGCTEzUtg9Zq9qJn0EjEr7SeSlTQ==", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0" + "babel-plugin-syntax-dynamic-import": "^6.18.0" } }, "babel-plugin-istanbul": { @@ -912,10 +912,10 @@ "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { - "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" + "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" } }, "babel-plugin-lodash": { @@ -924,11 +924,11 @@ "integrity": "sha512-lNsptTRfc0FTdW56O087EiKEADVEjJo2frDQ97olMjCKbRZfZPu7MvdyxnZLOoDpuTCtavN8/4Zk65x4gT+C3Q==", "dev": true, "requires": { - "babel-helper-module-imports": "7.0.0-beta.3", - "babel-types": "6.26.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "require-package-name": "2.0.1" + "babel-helper-module-imports": "^7.0.0-beta.3", + "babel-types": "^6.26.0", + "glob": "^7.1.1", + "lodash": "^4.17.4", + "require-package-name": "^2.0.1" } }, "babel-plugin-react-transform": { @@ -937,7 +937,7 @@ "integrity": "sha1-UVu/qZaJOYEULZCx+bFjXeKZUQk=", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.6.1" } }, "babel-plugin-syntax-async-functions": { @@ -1006,9 +1006,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": { @@ -1017,9 +1017,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": { @@ -1028,10 +1028,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": { @@ -1040,11 +1040,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": { @@ -1053,7 +1053,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -1062,7 +1062,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -1071,11 +1071,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.10" + "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": { @@ -1084,15 +1084,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": { @@ -1101,8 +1101,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": { @@ -1111,7 +1111,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -1120,8 +1120,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": { @@ -1130,7 +1130,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": { @@ -1139,9 +1139,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": { @@ -1150,7 +1150,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -1159,9 +1159,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "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": { @@ -1170,10 +1170,10 @@ "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": { @@ -1182,9 +1182,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": { @@ -1193,9 +1193,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": { @@ -1204,8 +1204,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": { @@ -1214,12 +1214,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": { @@ -1228,8 +1228,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": { @@ -1238,7 +1238,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1247,9 +1247,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": { @@ -1258,7 +1258,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1267,7 +1267,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1276,9 +1276,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": { @@ -1287,9 +1287,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": { @@ -1298,8 +1298,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": { @@ -1308,8 +1308,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": { @@ -1318,7 +1318,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": { @@ -1327,9 +1327,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": { @@ -1338,8 +1338,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": { @@ -1348,8 +1348,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-react-remove-prop-types": { @@ -1364,7 +1364,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -1373,8 +1373,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": { @@ -1383,9 +1383,9 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "core-js": { @@ -1408,36 +1408,36 @@ "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.2", - "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.11.3", - "invariant": "2.2.4", - "semver": "5.5.0" + "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": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-flow": { @@ -1446,7 +1446,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": { @@ -1455,12 +1455,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": { @@ -1469,10 +1469,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": { @@ -1481,11 +1481,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": { @@ -1494,13 +1494,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "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": { @@ -1517,8 +1517,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "core-js": { @@ -1535,11 +1535,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.10" + "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": { @@ -1548,15 +1548,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.4", - "lodash": "4.17.10" + "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": { @@ -1565,10 +1565,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "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": { @@ -1589,13 +1589,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "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": { @@ -1604,7 +1604,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1613,7 +1613,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1622,7 +1622,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1631,9 +1631,9 @@ "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-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1651,7 +1651,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "binary-extensions": { @@ -1672,7 +1672,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bn.js": { @@ -1687,22 +1687,13 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1712,16 +1703,16 @@ "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.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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": { @@ -1730,7 +1721,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1747,12 +1738,12 @@ "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, "requires": { - "JSONStream": "1.3.3", - "combine-source-map": "0.8.0", - "defined": "1.0.0", - "safe-buffer": "5.1.2", - "through2": "2.0.3", - "umd": "3.0.3" + "JSONStream": "^1.0.3", + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" } }, "browser-process-hrtime": { @@ -1790,53 +1781,53 @@ "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", "dev": true, "requires": { - "JSONStream": "1.3.3", - "assert": "1.4.1", - "browser-pack": "6.1.0", - "browser-resolve": "1.11.2", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "defined": "1.0.0", - "deps-sort": "2.0.0", - "domain-browser": "1.1.7", - "duplexer2": "0.1.4", - "events": "1.1.1", - "glob": "7.1.2", - "has": "1.0.1", - "htmlescape": "1.1.1", - "https-browserify": "0.0.1", - "inherits": "2.0.3", - "insert-module-globals": "7.1.0", - "labeled-stream-splicer": "2.0.1", - "module-deps": "4.1.1", - "os-browserify": "0.1.2", - "parents": "1.0.1", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "read-only-stream": "2.0.0", - "readable-stream": "2.3.6", - "resolve": "1.7.1", - "shasum": "1.0.2", - "shell-quote": "1.6.1", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "0.10.31", - "subarg": "1.0.0", - "syntax-error": "1.4.0", - "through2": "2.0.3", - "timers-browserify": "1.4.2", - "tty-browserify": "0.0.1", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.1.2", + "buffer": "^4.1.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.1", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "~1.1.0", + "duplexer2": "~0.1.2", + "events": "~1.1.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "~0.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "module-deps": "^4.0.8", + "os-browserify": "~0.1.1", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "~0.10.0", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "~0.0.1", + "xtend": "^4.0.0" }, "dependencies": { "concat-stream": { @@ -1845,9 +1836,9 @@ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, "dependencies": { "readable-stream": { @@ -1856,12 +1847,12 @@ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } } } @@ -1892,12 +1883,12 @@ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "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": { @@ -1906,9 +1897,9 @@ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1917,9 +1908,9 @@ "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", "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": { @@ -1928,8 +1919,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1938,13 +1929,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" + "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": { @@ -1953,7 +1944,7 @@ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "dev": true, "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "browserslist": { @@ -1962,8 +1953,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000839", - "electron-to-chromium": "1.3.45" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buffer": { @@ -1972,9 +1963,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-from": { @@ -2007,15 +1998,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "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" + "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" } }, "cached-path-relative": { @@ -2030,7 +2021,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -2051,8 +2042,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" } }, "caniuse-lite": { @@ -2073,12 +2064,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chai-as-promised": { @@ -2087,7 +2078,7 @@ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { - "check-error": "1.0.2" + "check-error": "^1.0.2" } }, "chain-function": { @@ -2101,11 +2092,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" } }, "change-emitter": { @@ -2131,12 +2122,12 @@ "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "entities": "1.1.1", - "htmlparser2": "3.9.2", - "lodash": "4.17.10", - "parse5": "3.0.3" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" } }, "chokidar": { @@ -2145,18 +2136,18 @@ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "choma": { @@ -2165,8 +2156,8 @@ "integrity": "sha512-4KwEouEHt6SfG8vYnN2gSJfq/cGmnY2gubnUgsgkRXzHoSRAgluX2YXQgDg6bTDWuOmUrTb/cfwMpNlvnnPZCg==", "dev": true, "requires": { - "chalk": "2.4.1", - "seedrandom": "2.4.3" + "chalk": "^2.3.2", + "seedrandom": "^2.4.3" }, "dependencies": { "ansi-styles": { @@ -2175,7 +2166,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -2184,9 +2175,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -2195,7 +2186,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -2206,8 +2197,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -2222,10 +2213,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -2234,7 +2225,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -2256,7 +2247,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -2271,9 +2262,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": { "is-fullwidth-code-point": { @@ -2282,7 +2273,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -2291,9 +2282,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" } } } @@ -2316,8 +2307,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -2326,7 +2317,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -2347,10 +2338,10 @@ "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", "dev": true, "requires": { - "convert-source-map": "1.1.3", - "inline-source-map": "0.6.2", - "lodash.memoize": "3.0.4", - "source-map": "0.5.7" + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" }, "dependencies": { "convert-source-map": { @@ -2367,7 +2358,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2376,7 +2367,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "component-emitter": { @@ -2397,10 +2388,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "console-browserify": { @@ -2409,7 +2400,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "console-control-strings": { @@ -2459,13 +2450,13 @@ "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" }, "dependencies": { "esprima": { @@ -2480,8 +2471,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "minimist": { @@ -2498,8 +2489,8 @@ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -2508,11 +2499,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -2521,12 +2512,12 @@ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "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": { @@ -2534,9 +2525,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "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-spawn": { @@ -2545,18 +2536,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.10.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-browserify": { @@ -2565,17 +2547,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "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", + "randomfill": "^1.0.3" } }, "css-select": { @@ -2584,10 +2566,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-what": { @@ -2608,7 +2590,7 @@ "integrity": "sha512-tNvaxM5blOnxanyxI6panOsnfiyLRj3HV4qjqqS45WPNS1usdYWRUQjqTEEELK73lpeP/1KoIGYUwrBn/VcECA==", "dev": true, "requires": { - "cssom": "0.3.2" + "cssom": "0.3.x" } }, "currently-unhandled": { @@ -2617,7 +2599,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -2626,7 +2608,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.42" + "es5-ext": "^0.10.9" } }, "damerau-levenshtein": { @@ -2641,7 +2623,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-urls": { @@ -2650,9 +2632,9 @@ "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", "dev": true, "requires": { - "abab": "1.0.4", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "6.4.1" + "abab": "^1.0.4", + "whatwg-mimetype": "^2.0.0", + "whatwg-url": "^6.4.0" } }, "date-now": { @@ -2688,7 +2670,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-is": { @@ -2703,8 +2685,8 @@ "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": { @@ -2713,8 +2695,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2723,7 +2705,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2732,7 +2714,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2741,9 +2723,9 @@ "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-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -2760,13 +2742,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.1", - "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": { @@ -2793,10 +2775,10 @@ "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", "dev": true, "requires": { - "JSONStream": "1.3.3", - "shasum": "1.0.2", - "subarg": "1.0.0", - "through2": "2.0.3" + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" } }, "des.js": { @@ -2805,8 +2787,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "detect-indent": { @@ -2815,7 +2797,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detective": { @@ -2824,8 +2806,8 @@ "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", "dev": true, "requires": { - "acorn": "5.5.3", - "defined": "1.0.0" + "acorn": "^5.2.1", + "defined": "^1.0.0" } }, "diff": { @@ -2840,9 +2822,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -2851,8 +2833,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -2861,7 +2843,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -2884,7 +2866,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-helpers": { @@ -2898,8 +2880,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": { @@ -2928,7 +2910,7 @@ "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "dev": true, "requires": { - "webidl-conversions": "4.0.2" + "webidl-conversions": "^4.0.2" } }, "domhandler": { @@ -2937,7 +2919,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domready": { @@ -2952,8 +2934,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "downshift": { @@ -2967,7 +2949,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "ecc-jsbn": { @@ -2977,7 +2959,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "electron-to-chromium": { @@ -3004,13 +2986,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.1", - "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" } }, "emoji-regex": { @@ -3024,7 +3006,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.23" + "iconv-lite": "~0.4.13" } }, "entities": { @@ -3039,22 +3021,22 @@ "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==", "dev": true, "requires": { - "cheerio": "1.0.0-rc.2", - "function.prototype.name": "1.1.0", - "has": "1.0.1", - "is-boolean-object": "1.0.0", - "is-callable": "1.1.3", - "is-number-object": "1.0.3", - "is-string": "1.0.4", - "is-subset": "0.1.1", - "lodash": "4.17.10", - "object-inspect": "1.6.0", - "object-is": "1.0.1", - "object.assign": "4.1.0", - "object.entries": "1.0.4", - "object.values": "1.0.4", - "raf": "3.4.0", - "rst-selector-parser": "2.2.3" + "cheerio": "^1.0.0-rc.2", + "function.prototype.name": "^1.0.3", + "has": "^1.0.1", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.3", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-subset": "^0.1.1", + "lodash": "^4.17.4", + "object-inspect": "^1.5.0", + "object-is": "^1.0.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4", + "object.values": "^1.0.4", + "raf": "^3.4.0", + "rst-selector-parser": "^2.2.3" } }, "enzyme-adapter-react-15": { @@ -3063,11 +3045,11 @@ "integrity": "sha512-GxQ+ZYbo6YFwwpaLc9LLyAwsx+F1au628/+hwTx3XV2OiuvHGyWgC/r1AAK1HlDRjujzfwwMNZTc/JxkjIuYVg==", "dev": true, "requires": { - "enzyme-adapter-utils": "1.3.0", - "lodash": "4.17.10", - "object.assign": "4.1.0", - "object.values": "1.0.4", - "prop-types": "15.6.1" + "enzyme-adapter-utils": "^1.1.0", + "lodash": "^4.17.4", + "object.assign": "^4.0.4", + "object.values": "^1.0.4", + "prop-types": "^15.5.10" } }, "enzyme-adapter-utils": { @@ -3076,9 +3058,9 @@ "integrity": "sha512-vVXSt6uDv230DIv+ebCG66T1Pm36Kv+m74L1TrF4kaE7e1V7Q/LcxO0QRkajk5cA6R3uu9wJf5h13wOTezTbjA==", "dev": true, "requires": { - "lodash": "4.17.10", - "object.assign": "4.1.0", - "prop-types": "15.6.1" + "lodash": "^4.17.4", + "object.assign": "^4.0.4", + "prop-types": "^15.6.0" } }, "error-ex": { @@ -3087,7 +3069,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -3096,11 +3078,11 @@ "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", "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": { @@ -3109,9 +3091,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": { @@ -3120,9 +3102,9 @@ "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -3131,9 +3113,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -3142,12 +3124,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "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": { @@ -3156,11 +3138,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "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": { @@ -3169,8 +3151,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -3179,10 +3161,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "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-string-regexp": { @@ -3197,11 +3179,11 @@ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -3219,10 +3201,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -3231,44 +3213,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.5.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "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", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "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-without-jsonify": "^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", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -3283,7 +3265,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -3292,9 +3274,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "debug": { @@ -3324,8 +3306,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "strip-ansi": { @@ -3334,7 +3316,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -3343,7 +3325,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3354,7 +3336,7 @@ "integrity": "sha512-m0q9fiMBzDAIbirlGnpJNWToIhdhJmXXnMG+IFflYzzod9231ZhtmGKegKg8E9T8F1YuVaDSU1FnCm5b9iXVhQ==", "dev": true, "requires": { - "eslint-config-airbnb-base": "11.3.2" + "eslint-config-airbnb-base": "^11.3.0" } }, "eslint-config-airbnb-base": { @@ -3363,7 +3345,7 @@ "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==", "dev": true, "requires": { - "eslint-restricted-globals": "0.1.1" + "eslint-restricted-globals": "^0.1.1" } }, "eslint-import-resolver-node": { @@ -3372,8 +3354,8 @@ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "2.6.9", - "resolve": "1.7.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" } }, "eslint-module-utils": { @@ -3382,8 +3364,8 @@ "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "dev": true, "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" } }, "eslint-plugin-import": { @@ -3392,16 +3374,16 @@ "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=", "dev": true, "requires": { - "contains-path": "0.1.0", - "debug": "2.6.9", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.7.1" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" }, "dependencies": { "doctrine": { @@ -3410,8 +3392,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "load-json-file": { @@ -3420,10 +3402,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" } }, "path-type": { @@ -3432,7 +3414,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "read-pkg": { @@ -3441,9 +3423,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": { @@ -3452,8 +3434,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": { @@ -3470,13 +3452,13 @@ "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==", "dev": true, "requires": { - "aria-query": "0.7.1", - "array-includes": "3.0.3", + "aria-query": "^0.7.0", + "array-includes": "^3.0.3", "ast-types-flow": "0.0.7", - "axobject-query": "0.1.0", - "damerau-levenshtein": "1.0.4", - "emoji-regex": "6.5.1", - "jsx-ast-utils": "1.4.1" + "axobject-query": "^0.1.0", + "damerau-levenshtein": "^1.0.0", + "emoji-regex": "^6.1.0", + "jsx-ast-utils": "^1.4.0" } }, "eslint-plugin-no-unsafe-innerhtml": { @@ -3485,7 +3467,7 @@ "integrity": "sha1-fQKHjI6b95FriINtWsEitC8VGTI=", "dev": true, "requires": { - "eslint": "3.19.0" + "eslint": "^3.7.1" }, "dependencies": { "ajv": { @@ -3494,8 +3476,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ajv-keywords": { @@ -3516,7 +3498,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "eslint": { @@ -3525,41 +3507,41 @@ "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "concat-stream": "1.6.2", - "debug": "2.6.9", - "doctrine": "2.1.0", - "escope": "3.6.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.17.2", - "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.7.8", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" + "babel-code-frame": "^6.16.0", + "chalk": "^1.1.3", + "concat-stream": "^1.5.2", + "debug": "^2.1.1", + "doctrine": "^2.0.0", + "escope": "^3.6.0", + "espree": "^3.4.0", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "glob": "^7.0.3", + "globals": "^9.14.0", + "ignore": "^3.2.0", + "imurmurhash": "^0.1.4", + "inquirer": "^0.12.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.5.1", + "json-stable-stringify": "^1.0.0", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.7.5", + "strip-bom": "^3.0.0", + "strip-json-comments": "~2.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" } }, "esprima": { @@ -3574,8 +3556,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" } }, "inquirer": { @@ -3584,19 +3566,19 @@ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.10", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, "is-fullwidth-code-point": { @@ -3605,7 +3587,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "js-yaml": { @@ -3614,8 +3596,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "onetime": { @@ -3642,8 +3624,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" } }, "run-async": { @@ -3652,7 +3634,7 @@ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.3.0" } }, "rx-lite": { @@ -3673,9 +3655,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" } }, "strip-bom": { @@ -3690,12 +3672,12 @@ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.10", + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", "slice-ansi": "0.0.4", - "string-width": "2.1.1" + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -3716,8 +3698,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" } }, "strip-ansi": { @@ -3726,7 +3708,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -3739,10 +3721,10 @@ "integrity": "sha512-H3ne8ob4Bn6NXSN9N9twsn7t8dyHT5bF/ibQepxIHi6JiPIdC2gXlfYvZYucbdrWio4FxBq7Z4mSauQP+qmMkQ==", "dev": true, "requires": { - "doctrine": "2.1.0", - "has": "1.0.1", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.1" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" }, "dependencies": { "jsx-ast-utils": { @@ -3751,7 +3733,7 @@ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "dev": true, "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } } } @@ -3762,8 +3744,8 @@ "integrity": "sha1-rLJqf/KJsz8XfIwSwwRmEtWOCJY=", "dev": true, "requires": { - "babel-eslint": "7.2.3", - "eslint": "4.19.1" + "babel-eslint": ">=4.1.1", + "eslint": ">=1.1" } }, "eslint-restricted-globals": { @@ -3778,8 +3760,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-stats": { @@ -3788,8 +3770,8 @@ "integrity": "sha1-xdGVW1X2hFuWkB5joRIp2EYN0mk=", "dev": true, "requires": { - "chalk": "0.5.1", - "lodash": "4.17.10" + "chalk": "^0.5.1", + "lodash": "^4.17.4" }, "dependencies": { "ansi-regex": { @@ -3810,11 +3792,11 @@ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", "dev": true, "requires": { - "ansi-styles": "1.1.0", - "escape-string-regexp": "1.0.5", - "has-ansi": "0.1.0", - "strip-ansi": "0.3.0", - "supports-color": "0.2.0" + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" } }, "has-ansi": { @@ -3823,7 +3805,7 @@ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", "dev": true, "requires": { - "ansi-regex": "0.2.1" + "ansi-regex": "^0.2.0" } }, "strip-ansi": { @@ -3832,7 +3814,7 @@ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", "dev": true, "requires": { - "ansi-regex": "0.2.1" + "ansi-regex": "^0.2.1" } }, "supports-color": { @@ -3855,8 +3837,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -3871,7 +3853,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -3880,7 +3862,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -3901,8 +3883,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "events": { @@ -3917,8 +3899,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -3927,13 +3909,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" } }, "exit-hook": { @@ -3948,13 +3930,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -3963,7 +3945,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -3972,7 +3954,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3984,7 +3966,7 @@ "dev": true, "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" }, "dependencies": { "fill-range": { @@ -3994,11 +3976,11 @@ "dev": true, "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "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" } }, "is-number": { @@ -4008,7 +3990,7 @@ "dev": true, "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "isobject": { @@ -4028,7 +4010,7 @@ "dev": true, "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4045,8 +4027,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4055,7 +4037,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4066,9 +4048,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -4077,14 +4059,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -4093,7 +4075,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -4102,7 +4084,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -4111,7 +4093,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4120,7 +4102,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4129,9 +4111,9 @@ "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-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -4164,13 +4146,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.18" + "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" }, "dependencies": { "isomorphic-fetch": { @@ -4178,8 +4160,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.4" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } } } @@ -4190,7 +4172,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -4199,8 +4181,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": { @@ -4216,10 +4198,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -4228,7 +4210,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4239,7 +4221,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -4248,10 +4230,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" } }, "for-in": { @@ -4267,7 +4249,7 @@ "dev": true, "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -4288,9 +4270,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "foundation-sites": { @@ -4305,7 +4287,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "front-matter": { @@ -4314,7 +4296,7 @@ "integrity": "sha1-91mDufL0E75ljJPf172M5AePXNs=", "dev": true, "requires": { - "js-yaml": "3.11.0" + "js-yaml": "^3.4.6" }, "dependencies": { "esprima": { @@ -4329,8 +4311,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } @@ -4341,9 +4323,9 @@ "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" } }, "fs-readdir-recursive": { @@ -4365,8 +4347,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -4396,8 +4378,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -4412,7 +4394,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4486,7 +4468,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -4503,14 +4485,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "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" + "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" } }, "glob": { @@ -4520,12 +4502,12 @@ "dev": true, "optional": 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" } }, "has-unicode": { @@ -4542,7 +4524,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -4552,7 +4534,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -4562,8 +4544,8 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4585,7 +4567,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -4601,7 +4583,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4616,8 +4598,8 @@ "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -4627,7 +4609,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -4653,9 +4635,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -4665,16 +4647,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -4684,8 +4666,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -4702,8 +4684,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -4713,10 +4695,10 @@ "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" + "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": { @@ -4738,7 +4720,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -4762,8 +4744,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -4787,10 +4769,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -4809,13 +4791,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -4825,7 +4807,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -4875,9 +4857,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" } }, "string_decoder": { @@ -4887,7 +4869,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -4896,7 +4878,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -4913,13 +4895,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -4936,7 +4918,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -4959,10 +4941,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "function-bind": { @@ -4977,9 +4959,9 @@ "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", "dev": true, "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "is-callable": "1.1.3" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "is-callable": "^1.1.3" } }, "functional-red-black-tree": { @@ -4994,14 +4976,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "aproba": "1.2.0", - "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.3" + "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" }, "dependencies": { "is-fullwidth-code-point": { @@ -5010,7 +4992,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -5019,9 +5001,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" } } } @@ -5032,7 +5014,7 @@ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { - "globule": "1.2.1" + "globule": "^1.0.0" } }, "generate-function": { @@ -5047,7 +5029,7 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -5086,7 +5068,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -5095,12 +5077,12 @@ "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": { @@ -5110,8 +5092,8 @@ "dev": true, "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" }, "dependencies": { "glob-parent": { @@ -5121,7 +5103,7 @@ "dev": true, "optional": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "is-extglob": { @@ -5136,7 +5118,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -5147,8 +5129,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5157,7 +5139,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5174,12 +5156,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" } }, "globule": { @@ -5188,9 +5170,9 @@ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" } }, "gonzales-pe-sl": { @@ -5199,7 +5181,7 @@ "integrity": "sha1-aoaLw4BkXxQf7rBCxvl/zHG1n+Y=", "dev": true, "requires": { - "minimist": "1.1.3" + "minimist": "1.1.x" }, "dependencies": { "minimist": { @@ -5240,8 +5222,8 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -5250,7 +5232,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -5259,7 +5241,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -5286,9 +5268,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -5297,8 +5279,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -5307,7 +5289,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5318,8 +5300,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -5328,20 +5310,8 @@ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "he": { @@ -5355,10 +5325,10 @@ "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz", "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=", "requires": { - "invariant": "2.2.4", - "loose-envify": "1.3.1", - "query-string": "4.3.4", - "warning": "3.0.0" + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "query-string": "^4.2.2", + "warning": "^3.0.0" } }, "hmac-drbg": { @@ -5367,17 +5337,11 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, "hoist-non-react-statics": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", @@ -5389,8 +5353,8 @@ "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": { @@ -5405,7 +5369,7 @@ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { - "whatwg-encoding": "1.0.3" + "whatwg-encoding": "^1.0.1" } }, "htmlescape": { @@ -5420,12 +5384,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.5.1", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "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-signature": { @@ -5434,9 +5398,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -5450,7 +5414,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -5483,7 +5447,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -5498,8 +5462,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -5514,7 +5478,7 @@ "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "~0.5.3" } }, "inquirer": { @@ -5523,20 +5487,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "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": { @@ -5551,7 +5515,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -5560,9 +5524,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "strip-ansi": { @@ -5571,7 +5535,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -5580,7 +5544,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5591,15 +5555,15 @@ "integrity": "sha512-LbYZdybvKjbbcKLp03lB323Cgc8f0iL0Rjh8U6JZ7K1gZSf7MxQH191iCNUcLX4qIQ6/yWe4Q4ZsQ+opcReNFg==", "dev": true, "requires": { - "JSONStream": "1.3.3", - "combine-source-map": "0.8.0", - "concat-stream": "1.6.2", - "is-buffer": "1.1.6", - "lexical-scope": "1.2.0", - "path-is-absolute": "1.0.1", - "process": "0.11.10", - "through2": "2.0.3", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "lexical-scope": "^1.2.0", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" } }, "interpret": { @@ -5613,7 +5577,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -5628,7 +5592,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5637,7 +5601,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5654,7 +5618,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-boolean-object": { @@ -5675,7 +5639,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -5690,7 +5654,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5699,7 +5663,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5716,9 +5680,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -5749,7 +5713,7 @@ "dev": true, "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -5770,7 +5734,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -5785,7 +5749,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-my-ip-valid": { @@ -5800,11 +5764,11 @@ "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", "dev": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-number": { @@ -5813,7 +5777,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5822,7 +5786,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5839,7 +5803,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -5862,7 +5826,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -5871,7 +5835,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-object": { @@ -5880,7 +5844,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-posix-bracket": { @@ -5915,7 +5879,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-resolvable": { @@ -6010,19 +5974,19 @@ "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "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" } }, "js-base64": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", - "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", + "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", "dev": true }, "js-tokens": { @@ -6043,32 +6007,32 @@ "integrity": "sha512-ou1VyfjwsSuWkudGxb03FotDajxAto6USAlmMZjE2lc0jCznt7sBWkhfRBRaWwbnmDqdMSTKTLT5d9sBFkkM7A==", "dev": true, "requires": { - "abab": "1.0.4", - "acorn": "5.5.3", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "cssom": "0.3.2", - "cssstyle": "0.3.1", - "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.0", + "abab": "^1.0.4", + "acorn": "^5.3.0", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.3.1 < 0.4.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.0", + "escodegen": "^1.9.0", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.2.0", + "nwsapi": "^2.0.0", "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": "4.1.0", - "xml-name-validator": "3.0.0" + "pn": "^1.1.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", + "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": "^4.0.0", + "xml-name-validator": "^3.0.0" }, "dependencies": { "parse5": { @@ -6103,7 +6067,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stable-stringify-without-jsonify": { @@ -6136,7 +6100,7 @@ "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -6210,9 +6174,9 @@ "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", "dev": true, "requires": { - "inherits": "2.0.3", - "isarray": "2.0.4", - "stream-splicer": "2.0.0" + "inherits": "^2.0.1", + "isarray": "^2.0.4", + "stream-splicer": "^2.0.0" }, "dependencies": { "isarray": { @@ -6229,7 +6193,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "left-pad": { @@ -6244,8 +6208,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" } }, "lexical-scope": { @@ -6254,7 +6218,7 @@ "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", "dev": true, "requires": { - "astw": "2.2.0" + "astw": "^2.0.0" } }, "load-json-file": { @@ -6263,11 +6227,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" } }, "locate-path": { @@ -6276,8 +6240,8 @@ "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": { @@ -6291,7 +6255,7 @@ "integrity": "sha1-ypWPW82z1o0+w3rN8cWMHMvYhlw=", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": ">=3.7.0" } }, "lodash-es": { @@ -6375,7 +6339,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.1" + "chalk": "^2.0.1" }, "dependencies": { "ansi-styles": { @@ -6384,7 +6348,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -6393,9 +6357,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -6404,7 +6368,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -6420,7 +6384,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": { @@ -6429,8 +6393,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": { @@ -6439,8 +6403,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -6461,7 +6425,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "matches-selector": { @@ -6483,8 +6447,8 @@ "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" } }, "mem": { @@ -6493,7 +6457,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -6502,16 +6466,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": { @@ -6534,19 +6498,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } }, "miller-rabin": { @@ -6555,8 +6519,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-db": { @@ -6571,7 +6535,7 @@ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -6598,7 +6562,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6613,8 +6577,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -6623,7 +6587,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6677,7 +6641,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -6688,21 +6652,21 @@ "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", "dev": true, "requires": { - "JSONStream": "1.3.3", - "browser-resolve": "1.11.2", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "defined": "1.0.0", - "detective": "4.7.1", - "duplexer2": "0.1.4", - "inherits": "2.0.3", - "parents": "1.0.1", - "readable-stream": "2.3.6", - "resolve": "1.7.1", - "stream-combiner2": "1.1.1", - "subarg": "1.0.0", - "through2": "2.0.3", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" }, "dependencies": { "concat-stream": { @@ -6711,9 +6675,9 @@ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, "dependencies": { "readable-stream": { @@ -6722,12 +6686,12 @@ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } } } @@ -6775,18 +6739,18 @@ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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-odd": "^2.0.0", + "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" } }, "natural-compare": { @@ -6801,10 +6765,10 @@ "integrity": "sha512-ioYYogSaZhFlCpRizQgY3UT3G1qFXmHGY/5ozoFE3dMfiCRAeJfh+IPE3/eh9gCZvqLhPCWb4bLt7Bqzo+1mLQ==", "dev": true, "requires": { - "nomnom": "1.6.2", - "railroad-diagrams": "1.0.0", + "nomnom": "~1.6.2", + "railroad-diagrams": "^1.0.0", "randexp": "0.4.6", - "semver": "5.5.0" + "semver": "^5.4.1" } }, "next-tick": { @@ -6819,11 +6783,11 @@ "integrity": "sha512-9JX3YwoIt3kS237scmSSOpEv7vCukVzLfwK0I0XhocDSHUANid8ZHnLEULbbSkfeMn98B2y5kphIWzZUylESRQ==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "node-fetch": { @@ -6831,29 +6795,28 @@ "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-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.87.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "semver": { @@ -6865,133 +6828,41 @@ } }, "node-sass": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", - "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", - "dev": true, - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.6.2", - "npmlog": "4.1.2", - "request": "2.79.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.2.tgz", + "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", + "request": "2.87.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true - }, "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "commander": "2.9.0", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - } - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "dev": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "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.18", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" - } - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true } } }, @@ -7001,8 +6872,8 @@ "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=", "dev": true, "requires": { - "colors": "0.5.1", - "underscore": "1.4.4" + "colors": "0.5.x", + "underscore": "~1.4.4" } }, "nopt": { @@ -7011,7 +6882,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -7020,10 +6891,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "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": { @@ -7032,7 +6903,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -7047,7 +6918,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npmlog": { @@ -7056,10 +6927,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "nth-check": { @@ -7068,7 +6939,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "null-loader": { @@ -7112,9 +6983,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -7123,7 +6994,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { @@ -7132,7 +7003,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7161,7 +7032,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.assign": { @@ -7170,10 +7041,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "object-keys": "1.0.11" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.entries": { @@ -7182,10 +7053,10 @@ "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.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": { @@ -7195,8 +7066,8 @@ "dev": true, "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -7205,7 +7076,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "object.values": { @@ -7214,10 +7085,10 @@ "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.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" } }, "once": { @@ -7226,7 +7097,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -7235,7 +7106,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -7244,12 +7115,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" } }, "os-browserify": { @@ -7270,7 +7141,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -7285,8 +7156,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "output-file-sync": { @@ -7295,9 +7166,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-finally": { @@ -7312,7 +7183,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -7321,7 +7192,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -7342,7 +7213,7 @@ "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", "dev": true, "requires": { - "path-platform": "0.11.15" + "path-platform": "~0.11.15" } }, "parse-asn1": { @@ -7351,11 +7222,11 @@ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" + "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": { @@ -7365,10 +7236,10 @@ "dev": true, "optional": 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" }, "dependencies": { "is-extglob": { @@ -7384,7 +7255,7 @@ "dev": true, "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -7395,7 +7266,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse5": { @@ -7404,7 +7275,7 @@ "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "pascalcase": { @@ -7484,9 +7355,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" } }, "pathval": { @@ -7501,11 +7372,11 @@ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "dev": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "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": { @@ -7532,7 +7403,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -7541,7 +7412,7 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -7550,8 +7421,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": { @@ -7560,7 +7431,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -7589,9 +7460,9 @@ "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "ansi-styles": { @@ -7600,7 +7471,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -7609,9 +7480,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "source-map": { @@ -7626,7 +7497,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -7637,18 +7508,18 @@ "integrity": "sha512-LbSZQUu1fh7hiIU/JCitSWd+V3MO60DWi9ETUKiO7i9fDZN/9XqI3ACbAOnymd9a+8v5x5XI5SjeEv4/R+l/Ow==", "dev": true, "requires": { - "chalk": "2.4.1", - "chokidar": "2.0.3", - "dependency-graph": "0.7.1", - "fs-extra": "5.0.0", - "get-stdin": "5.0.1", - "globby": "7.1.1", - "postcss": "6.0.22", - "postcss-load-config": "1.2.0", - "postcss-reporter": "5.0.0", - "pretty-hrtime": "1.0.3", - "read-cache": "1.0.0", - "yargs": "11.0.0" + "chalk": "^2.1.0", + "chokidar": "^2.0.0", + "dependency-graph": "^0.7.0", + "fs-extra": "^5.0.0", + "get-stdin": "^5.0.1", + "globby": "^7.1.1", + "postcss": "^6.0.1", + "postcss-load-config": "^1.1.0", + "postcss-reporter": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "yargs": "^11.0.0" }, "dependencies": { "ansi-regex": { @@ -7663,7 +7534,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "camelcase": { @@ -7678,9 +7549,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "cliui": { @@ -7689,9 +7560,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "fs-extra": { @@ -7700,9 +7571,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "get-stdin": { @@ -7717,12 +7588,12 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "jsonfile": { @@ -7731,7 +7602,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "os-locale": { @@ -7740,9 +7611,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" } }, "pify": { @@ -7757,7 +7628,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -7766,7 +7637,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "which-module": { @@ -7781,18 +7652,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.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": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^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": "^9.0.2" } }, "yargs-parser": { @@ -7801,7 +7672,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -7812,10 +7683,10 @@ "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" } }, "postcss-load-options": { @@ -7824,8 +7695,8 @@ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" } }, "postcss-load-plugins": { @@ -7834,8 +7705,8 @@ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" } }, "postcss-reporter": { @@ -7844,10 +7715,10 @@ "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", "dev": true, "requires": { - "chalk": "2.4.1", - "lodash": "4.17.10", - "log-symbols": "2.2.0", - "postcss": "6.0.22" + "chalk": "^2.0.1", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "postcss": "^6.0.8" }, "dependencies": { "ansi-styles": { @@ -7856,7 +7727,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -7865,9 +7736,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -7876,7 +7747,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -7935,7 +7806,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": { @@ -7943,9 +7814,9 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", "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" } }, "pseudomap": { @@ -7960,11 +7831,11 @@ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" + "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": { @@ -7984,8 +7855,8 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -8006,7 +7877,7 @@ "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", "dev": true, "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" } }, "railroad-diagrams": { @@ -8022,7 +7893,7 @@ "dev": true, "requires": { "discontinuous-range": "1.0.0", - "ret": "0.1.15" + "ret": "~0.1.10" } }, "randomatic": { @@ -8032,9 +7903,9 @@ "dev": true, "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -8052,7 +7923,7 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -8061,8 +7932,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "raven-js": { @@ -8076,11 +7947,11 @@ "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", "dev": true, "requires": { - "create-react-class": "15.6.3", - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.1" + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-dom": { @@ -8089,10 +7960,10 @@ "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", "dev": true, "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-element-to-string": { @@ -8101,8 +7972,8 @@ "integrity": "sha1-AmLyzg/6i1GOo1l7w6jcJuBVGkc=", "dev": true, "requires": { - "indent-string": "2.1.0", - "json-stringify-pretty-compact": "1.2.0" + "indent-string": "^2.1.0", + "json-stringify-pretty-compact": "^1.0.1" } }, "react-redux": { @@ -8110,12 +7981,12 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz", "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=", "requires": { - "create-react-class": "15.6.3", - "hoist-non-react-statics": "1.2.0", - "invariant": "2.2.4", - "lodash": "4.17.10", - "loose-envify": "1.3.1", - "prop-types": "15.6.1" + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^1.0.3", + "invariant": "^2.0.0", + "lodash": "^4.2.0", + "loose-envify": "^1.1.0", + "prop-types": "^15.5.4" } }, "react-router": { @@ -8123,13 +7994,13 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==", "requires": { - "create-react-class": "15.6.3", - "history": "3.3.0", - "hoist-non-react-statics": "2.5.0", - "invariant": "2.2.4", - "loose-envify": "1.3.1", - "prop-types": "15.6.1", - "warning": "3.0.0" + "create-react-class": "^15.5.1", + "history": "^3.0.0", + "hoist-non-react-statics": "^2.3.1", + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "prop-types": "^15.5.6", + "warning": "^3.0.0" }, "dependencies": { "hoist-non-react-statics": { @@ -8144,8 +8015,8 @@ "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.7.9.tgz", "integrity": "sha512-baTwyz2FxaZWZ/4yEAWQEGE4CMZzGj/AjvLu/x4xmAisFgSAq3D0QED3deI6D4zeJTSEmeuy8Hm01IS+IDbKIg==", "requires": { - "lodash.throttle": "4.1.1", - "prop-types": "15.6.1" + "lodash.throttle": "^4.1.1", + "prop-types": "^15.5.8" } }, "react-test-renderer": { @@ -8154,8 +8025,8 @@ "integrity": "sha1-0DM0NPwsQ4CSaWyncNpe1IA376g=", "dev": true, "requires": { - "fbjs": "0.8.16", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "object-assign": "^4.1.0" } }, "react-transition-group": { @@ -8163,11 +8034,11 @@ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", "requires": { - "chain-function": "1.0.0", - "dom-helpers": "3.3.1", - "loose-envify": "1.3.1", - "prop-types": "15.6.1", - "warning": "3.0.0" + "chain-function": "^1.0.0", + "dom-helpers": "^3.2.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.5.6", + "warning": "^3.0.0" } }, "read-cache": { @@ -8176,7 +8047,7 @@ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" } }, "read-only-stream": { @@ -8185,7 +8056,7 @@ "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "read-pkg": { @@ -8194,9 +8065,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": { @@ -8205,8 +8076,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": { @@ -8215,8 +8086,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": { @@ -8225,7 +8096,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -8236,13 +8107,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -8251,10 +8122,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "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" } }, "readline2": { @@ -8263,8 +8134,8 @@ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", "mute-stream": "0.0.5" }, "dependencies": { @@ -8274,7 +8145,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "mute-stream": { @@ -8291,10 +8162,10 @@ "integrity": "sha1-v1RHfgOH5Evr84VRILvaWt6gj4s=", "dev": true, "requires": { - "element-closest": "2.0.2", - "keyboardevent-key-polyfill": "1.1.0", - "matches-selector": "1.2.0", - "object-assign": "4.1.1" + "element-closest": "^2.0.1", + "keyboardevent-key-polyfill": "^1.0.2", + "matches-selector": "^1.0.0", + "object-assign": "^4.1.0" } }, "rechoir": { @@ -8303,7 +8174,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.7.1" + "resolve": "^1.1.6" } }, "recompose": { @@ -8311,10 +8182,10 @@ "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.21.2.tgz", "integrity": "sha1-/z+9sjl7HHfEfUUb4qY7kpXURoE=", "requires": { - "change-emitter": "0.1.6", - "fbjs": "0.8.16", - "hoist-non-react-statics": "1.2.0", - "symbol-observable": "1.2.0" + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^1.0.0", + "symbol-observable": "^1.0.4" } }, "redent": { @@ -8323,8 +8194,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" } }, "redux": { @@ -8332,10 +8203,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "4.17.10", - "lodash-es": "4.17.10", - "loose-envify": "1.3.1", - "symbol-observable": "1.2.0" + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, "redux-thunk": { @@ -8362,9 +8233,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": { @@ -8374,7 +8245,7 @@ "dev": true, "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -8383,8 +8254,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -8399,9 +8270,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": { @@ -8416,7 +8287,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -8451,7 +8322,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -8460,26 +8331,26 @@ "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "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.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "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": { @@ -8488,7 +8359,7 @@ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.13.1" } }, "request-promise-native": { @@ -8498,8 +8369,8 @@ "dev": true, "requires": { "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "require-directory": { @@ -8532,8 +8403,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" } }, "reselect": { @@ -8547,7 +8418,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -8574,8 +8445,8 @@ "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": { @@ -8590,7 +8461,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { @@ -8599,8 +8470,8 @@ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "rst-selector-parser": { @@ -8609,8 +8480,8 @@ "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", "dev": true, "requires": { - "lodash.flattendeep": "4.4.0", - "nearley": "2.13.0" + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" } }, "run-async": { @@ -8619,7 +8490,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -8634,7 +8505,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -8649,7 +8520,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -8669,10 +8540,10 @@ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" } }, "sass-lint": { @@ -8681,20 +8552,20 @@ "integrity": "sha1-Yw9pwhaqIGuCMvsqqQe98zNrbYM=", "dev": true, "requires": { - "commander": "2.9.0", - "eslint": "2.13.1", + "commander": "^2.8.1", + "eslint": "^2.7.0", "front-matter": "2.1.2", - "fs-extra": "3.0.1", - "glob": "7.1.2", - "globule": "1.2.1", - "gonzales-pe-sl": "4.2.3", - "js-yaml": "3.11.0", - "known-css-properties": "0.3.0", - "lodash.capitalize": "4.2.1", - "lodash.kebabcase": "4.1.1", - "merge": "1.2.0", - "path-is-absolute": "1.0.1", - "util": "0.10.3" + "fs-extra": "^3.0.1", + "glob": "^7.0.0", + "globule": "^1.0.0", + "gonzales-pe-sl": "^4.2.3", + "js-yaml": "^3.5.4", + "known-css-properties": "^0.3.0", + "lodash.capitalize": "^4.1.0", + "lodash.kebabcase": "^4.0.0", + "merge": "^1.2.0", + "path-is-absolute": "^1.0.0", + "util": "^0.10.3" }, "dependencies": { "ajv": { @@ -8703,8 +8574,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ajv-keywords": { @@ -8725,7 +8596,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "doctrine": { @@ -8734,8 +8605,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "eslint": { @@ -8744,39 +8615,39 @@ "integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=", "dev": true, "requires": { - "chalk": "1.1.3", - "concat-stream": "1.6.2", - "debug": "2.6.9", - "doctrine": "1.5.0", - "es6-map": "0.1.5", - "escope": "3.6.0", - "espree": "3.5.4", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "1.3.1", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.17.2", - "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "optionator": "0.8.2", - "path-is-absolute": "1.0.1", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.6.1", - "strip-json-comments": "1.0.4", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" + "chalk": "^1.1.3", + "concat-stream": "^1.4.6", + "debug": "^2.1.1", + "doctrine": "^1.2.2", + "es6-map": "^0.1.3", + "escope": "^3.6.0", + "espree": "^3.1.6", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^1.1.1", + "glob": "^7.0.3", + "globals": "^9.2.0", + "ignore": "^3.1.2", + "imurmurhash": "^0.1.4", + "inquirer": "^0.12.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.5.1", + "json-stable-stringify": "^1.0.0", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "optionator": "^0.8.1", + "path-is-absolute": "^1.0.0", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.6.0", + "strip-json-comments": "~1.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" } }, "esprima": { @@ -8791,8 +8662,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" } }, "file-entry-cache": { @@ -8801,8 +8672,8 @@ "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "inquirer": { @@ -8811,19 +8682,19 @@ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.10", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, "is-fullwidth-code-point": { @@ -8832,7 +8703,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "js-yaml": { @@ -8841,8 +8712,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "onetime": { @@ -8869,8 +8740,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" } }, "run-async": { @@ -8879,7 +8750,7 @@ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.3.0" } }, "rx-lite": { @@ -8906,9 +8777,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" } }, "strip-json-comments": { @@ -8923,12 +8794,12 @@ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.10", + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", "slice-ansi": "0.0.4", - "string-width": "2.1.1" + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -8949,8 +8820,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" } }, "strip-ansi": { @@ -8959,7 +8830,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -8978,8 +8849,8 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.4.5", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -8988,7 +8859,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -9023,10 +8894,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -9035,7 +8906,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9051,8 +8922,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shasum": { @@ -9061,8 +8932,8 @@ "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", "dev": true, "requires": { - "json-stable-stringify": "0.0.1", - "sha.js": "2.4.11" + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" }, "dependencies": { "json-stable-stringify": { @@ -9071,7 +8942,7 @@ "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } } } @@ -9082,7 +8953,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -9097,10 +8968,10 @@ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true, "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" }, "dependencies": { "array-filter": { @@ -9117,9 +8988,9 @@ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", "dev": true, "requires": { - "glob": "7.1.2", - "interpret": "1.1.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "signal-exit": { @@ -9134,13 +9005,13 @@ "integrity": "sha512-MatciKXyM5pXMSoqd593MqTsItJNCkSSl53HJYeKR5wfsDdp2yljjUQJLfVwAWLoBNfx1HThteqygGQ0ZEpXpQ==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.0", - "nise": "1.4.1", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.5.0", + "lodash.get": "^4.4.2", + "lolex": "^2.4.2", + "nise": "^1.3.3", + "supports-color": "^5.4.0", + "type-detect": "^4.0.8" }, "dependencies": { "supports-color": { @@ -9149,7 +9020,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9160,10 +9031,10 @@ "integrity": "sha512-2TFImKMDE4bS4hm8hdpjTf4+0RXAUxK0jjQRKPrf4qypAk9zDcEldIcxdQNMUdhsJhWwFrENz7jGu5Gu/IWbbQ==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "is-subset": "0.1.1", - "react-element-to-string": "1.0.2", - "semver": "5.5.0" + "escape-string-regexp": "^1.0.5", + "is-subset": "^0.1.1", + "react-element-to-string": "^1.0.2", + "semver": "^5.3.0" } }, "slash": { @@ -9178,7 +9049,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -9187,14 +9058,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "3.1.0" + "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": { @@ -9203,7 +9074,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9212,7 +9083,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9223,9 +9094,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -9234,7 +9105,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9243,7 +9114,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9252,7 +9123,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9261,9 +9132,9 @@ "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-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -9274,7 +9145,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -9283,20 +9154,11 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -9309,11 +9171,11 @@ "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "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" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -9322,7 +9184,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -9337,8 +9199,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -9353,8 +9215,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -9369,7 +9231,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -9384,14 +9246,14 @@ "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "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", + "tweetnacl": "~0.14.0" } }, "static-extend": { @@ -9400,8 +9262,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -9410,7 +9272,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -9421,7 +9283,7 @@ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.1" } }, "stealthy-require": { @@ -9436,8 +9298,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-combiner2": { @@ -9446,8 +9308,8 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.6" + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, "stream-http": { @@ -9456,11 +9318,11 @@ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-splicer": { @@ -9469,8 +9331,8 @@ "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "strict-uri-encode": { @@ -9484,8 +9346,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": { @@ -9500,7 +9362,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9511,22 +9373,16 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", - "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": { @@ -9535,7 +9391,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -9550,7 +9406,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -9565,7 +9421,7 @@ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.1.0" }, "dependencies": { "minimist": { @@ -9599,7 +9455,7 @@ "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, "requires": { - "acorn-node": "1.3.0" + "acorn-node": "^1.2.0" } }, "table": { @@ -9608,12 +9464,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "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": { @@ -9622,7 +9478,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -9631,9 +9487,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -9642,7 +9498,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9653,9 +9509,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "test-exclude": { @@ -9664,11 +9520,11 @@ "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "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" } }, "text-encoding": { @@ -9695,8 +9551,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timers-browserify": { @@ -9705,7 +9561,7 @@ "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "dev": true, "requires": { - "process": "0.11.10" + "process": "~0.11.0" } }, "tmp": { @@ -9714,7 +9570,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-arraybuffer": { @@ -9735,7 +9591,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -9744,7 +9600,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9755,10 +9611,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -9767,8 +9623,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "tough-cookie": { @@ -9777,7 +9633,7 @@ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -9794,7 +9650,7 @@ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "trim-newlines": { @@ -9815,7 +9671,7 @@ "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", "dev": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.4" }, "dependencies": { "glob": { @@ -9824,11 +9680,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -9845,7 +9701,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -9861,7 +9717,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -9905,10 +9761,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -9917,7 +9773,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -9926,10 +9782,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -9946,8 +9802,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -9956,9 +9812,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -10016,7 +9872,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" } }, "user-home": { @@ -10025,7 +9881,7 @@ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "uswds": { @@ -10034,19 +9890,19 @@ "integrity": "sha512-ivtLeJfd61OwqfrV8FMEJ8THP63fGTGYc2JSHVLBBuekbGHMv5KcpZhiY95P0fvQXbdbFQCqO5gT7n1vVsOyyQ==", "dev": true, "requires": { - "@types/node": "8.10.19", - "array-filter": "1.0.0", - "array-foreach": "1.0.2", - "browserify": "13.3.0", - "classlist-polyfill": "1.2.0", - "domready": "1.0.8", - "elem-dataset": "1.1.1", - "lodash.debounce": "4.0.8", - "object-assign": "4.1.1", - "receptor": "1.0.0", - "resolve-id-refs": "0.1.0", - "typescript": "2.9.1", - "yargs": "8.0.2" + "@types/node": "^8.5.5", + "array-filter": "^1.0.0", + "array-foreach": "^1.0.2", + "browserify": "^13.0.0", + "classlist-polyfill": "^1.0.3", + "domready": "^1.0.8", + "elem-dataset": "^1.1.1", + "lodash.debounce": "^4.0.7", + "object-assign": "^4.1.1", + "receptor": "^1.0.0", + "resolve-id-refs": "^0.1.0", + "typescript": "^2.4.1", + "yargs": "^8.0.2" }, "dependencies": { "@types/node": { @@ -10067,10 +9923,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": { @@ -10079,9 +9935,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": { @@ -10090,7 +9946,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "read-pkg": { @@ -10099,9 +9955,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": { @@ -10110,8 +9966,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": { @@ -10132,19 +9988,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": { @@ -10153,7 +10009,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -10193,7 +10049,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" }, "dependencies": { "user-home": { @@ -10210,8 +10066,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "verror": { @@ -10220,13 +10076,14 @@ "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" } }, "vets-json-schema": { - "version": "git+https://github.com/department-of-veterans-affairs/vets-json-schema.git#ae6a9b1c403a3c55a3c455424eacfa6d5b4669ef", + "version": "git+https://github.com/department-of-veterans-affairs/vets-json-schema.git#a27d01bbb31e9a018234d09d7d95cd0a7f7d3ff7", + "from": "git+https://github.com/department-of-veterans-affairs/vets-json-schema.git", "dev": true }, "vm-browserify": { @@ -10244,7 +10101,7 @@ "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", "dev": true, "requires": { - "browser-process-hrtime": "0.1.2" + "browser-process-hrtime": "^0.1.2" } }, "warning": { @@ -10252,7 +10109,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "webidl-conversions": { @@ -10295,9 +10152,9 @@ "integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==", "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" } }, "which": { @@ -10306,7 +10163,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -10321,7 +10178,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "wordwrap": { @@ -10336,8 +10193,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": { @@ -10346,7 +10203,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -10355,9 +10212,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" } } } @@ -10374,7 +10231,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -10383,8 +10240,8 @@ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" } }, "xml-name-validator": { @@ -10417,19 +10274,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "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": "5.0.0" + "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": "^5.0.0" }, "dependencies": { "camelcase": { @@ -10444,7 +10301,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -10453,9 +10310,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" } } } @@ -10466,7 +10323,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/package.json b/package.json index 933030a..eb75148 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "us-forms-system", - "version": "1.0.1", + "version": "1.1.0", "description": "Build React forms with JSON Schema and the U.S. Web Design System", "main": "index.js", "directories": { @@ -14,7 +14,7 @@ "lint": "npm run lint:js && npm run lint:sass", "lint:js": "eslint --quiet --ext .js --ext .jsx .", "lint:sass": "sass-lint -c test/config/sass-lint.yaml --verbose", - "test": "BABEL_ENV=test mocha --require test/config/unit-test-setup.js --require test/config/enzyme-setup.jsx --compilers js:babel-core/register ./test/**/*.spec.jsx", + "test": "BABEL_ENV=test mocha --require test/config/unit-test-setup.js --require test/config/enzyme-setup.jsx --compilers js:babel-core/register './test/**/*.spec.js?(x)' ", "webpack": "webpack" }, "repository": { @@ -65,7 +65,7 @@ "lodash": "^4.5.1", "lodash-deep": "^2.0.0", "mocha": "^5.2.0", - "node-sass": "^4.5.3", + "node-sass": "^4.9.2", "null-loader": "^0.1.1", "postcss-cli": "^5.0.0", "react": "^15.6.2", diff --git a/src/js/containers/FormPage.jsx b/src/js/containers/FormPage.jsx index 83e9d6b..4540635 100644 --- a/src/js/containers/FormPage.jsx +++ b/src/js/containers/FormPage.jsx @@ -99,6 +99,9 @@ class FormPage extends React.Component { // And the data should be for just the item in the array data = _.get([route.pageConfig.arrayPath, params.index], data); } + // It should be "safe" to check that this is the first page because it is + // always eligible and enabled, no need to call getPreviousPagePath. + const isFirstRoutePage = route.pageList[0].path === this.props.location.pathname; return (
    @@ -115,11 +118,12 @@ class FormPage extends React.Component { onSubmit={this.onSubmit}>
    - + { !isFirstRoutePage && + }
    isActivePage(page, data)); } +export function getActiveProperties(activePages) { + const allProperties = []; + activePages.forEach(page => { + if (page.schema) { + allProperties.push(...Object.keys(page.schema.properties)); + } + }); + return _.uniq(allProperties); +} + export function getInactivePages(pages, data) { return pages.filter(page => !isActivePage(page, data)); } @@ -212,11 +225,18 @@ export function filterViewFields(data) { }, {}); } -export function filterInactivePages(pages, form) { - return pages.reduce((formData, page) => { +export function filterInactivePageData(inactivePages, activePages, form) { + const activeProperties = getActiveProperties(activePages); + let newData; + + return inactivePages.reduce((formData, page) => { return Object.keys(page.schema.properties) .reduce((currentData, prop) => { - return _.unset(prop, currentData); + newData = currentData; + if (!activeProperties.includes(prop)) { + delete newData[prop]; + } + return newData; }, formData); }, form.data); } @@ -270,8 +290,9 @@ export function isInProgress(pathName) { * Normal transform for schemaform data */ export function transformForSubmit(formConfig, form, replacer = stringifyFormReplacer) { + const activePages = getActivePages(createFormPageList(formConfig), form.data); const inactivePages = getInactivePages(createFormPageList(formConfig), form.data); - const withoutInactivePages = filterInactivePages(inactivePages, form); + const withoutInactivePages = filterInactivePageData(inactivePages, activePages, form); const withoutViewFields = filterViewFields(withoutInactivePages); return JSON.stringify(withoutViewFields, replacer) || '{}'; diff --git a/src/scss/modules/_m-form-elements.scss b/src/scss/modules/_m-form-elements.scss index 5e8a034..12306cf 100644 --- a/src/scss/modules/_m-form-elements.scss +++ b/src/scss/modules/_m-form-elements.scss @@ -24,6 +24,84 @@ button.form-button-disabled { } } +.form-expanding-group-active-radio { + margin-left: 28px; +} + +.form-expanding-group-active-radio.form-expanding-group-inner-enter, + .form-expanding-group-active-radio.form-expanding-group-inner-leave-active { + margin-top: -16px; +} + +.form-expanding-group-inner-leave { + max-height: 800px; + opacity: 1; + margin-top: 0; +} + +.form-expanding-group-inner-enter { + opacity: 0; + max-height: 0; +} + +.form-expanding-group-inner-leave.form-expanding-group-inner-leave-active { + -webkit-transition: margin-top 500ms 0ms, max-height 300ms 0ms, opacity 300ms 0ms; + transition: margin-top 500ms 0ms, max-height 300ms 0ms, opacity 300ms 0ms; + max-height: 0; + opacity: 0; +} + +.form-expanding-group-inner-enter.form-expanding-group-inner-enter-active { + -webkit-transition: margin-top 300ms 0ms, max-height 700ms 0ms, opacity 500ms 200ms; + transition: margin-top 300ms 0ms, max-height 700ms 0ms, opacity 500ms 200ms; + max-height: 800px; + opacity: 1; + margin-top: 0 !important; +} + +.form-expanding-group > span { + .usa-input-error { + padding-left: calc(1.5rem - 6px); + right: calc(1.9rem - 6px); + } + .schemaform-expandUnder-indent { + .usa-input-error { + padding-left: 1.5rem; + right: 1.9rem; + } + } +} + +.form-expanding-group { + margin-left: -2rem; + padding-left: 2rem; +} + +.form-expanding-group-open { + padding-left: calc(2rem - 7px); + border-left: 7px solid $color-primary-alt-light; + + // Avoid nested expanding group borders + .form-expanding-group-open { + border-left-color: transparent; + } +} + +.form-expanding-group-plus { + position: relative; + &::after{ + content: "+"; + font-size: 20px; + position: absolute; + right: 0; + top: 0; + } +} + +.form-expanding-group-open.form-expanding-group-plus::after { + content: "-"; +} + .form-errorable-group { > .usa-input-error { label { diff --git a/test/js/containers/FormPage.unit.spec.jsx b/test/js/containers/FormPage.unit.spec.jsx index 795b763..4818035 100644 --- a/test/js/containers/FormPage.unit.spec.jsx +++ b/test/js/containers/FormPage.unit.spec.jsx @@ -5,46 +5,75 @@ import sinon from 'sinon'; import { FormPage } from '../../../src/js/containers/FormPage'; +// Build our mock objects +function makeRoute(obj) { + return Object.assign({ + pageConfig: { + pageKey: 'testPage', + schema: {}, + uiSchema: {}, + errorMessages: {}, + title: '' + }, + pageList: [ + { + path: '/first-page', + pageKey: 'firstPage' + }, + { + path: '/testing', + pageKey: 'testPage' + }, + { + path: '/next-page', + pageKey: 'nextPage' + } + ] + }, obj); +} +function makeForm(obj) { + return Object.assign({ + pages: { + firstPage: { schema: {}, uiSchema: {} }, + testPage: { schema: {}, uiSchema: {} }, + lastPage: { schema: {}, uiSchema: {} } + }, + data: {} + }, obj); +} +function makeArrayForm(obj) { + return Object.assign({ + pages: { + testPage: { + schema: { + properties: { + arrayProp: { + items: [{}] + } + } + }, + uiSchema: { + arrayProp: { + items: {} + } + } + } + }, + data: { + arrayProp: [{}] + } + }, obj); +} + describe('Schemaform ', () => { + // Defaults for most tests; overridden where needed below const location = { - pathname: '/testing/0' + pathname: '/testing' }; it('should render', () => { - const route = { - pageConfig: { - pageKey: 'testPage', - schema: {}, - uiSchema: {}, - errorMessages: {}, - title: '' - }, - pageList: [ - { - path: 'testing' - } - ] - }; - const form = { - pages: { - testPage: { - schema: {}, - uiSchema: {}, - } - }, - data: {} - }; - const user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: true - } - }; - const tree = SkinDeep.shallowRender( - + ); expect(tree.everySubTree('SchemaForm')).not.to.be.empty; @@ -55,68 +84,21 @@ describe('Schemaform ', () => { let setData; let router; let onSubmit; - let form; - let route; - let user; beforeEach(() => { setData = sinon.spy(); onSubmit = sinon.spy(); router = { push: sinon.spy() }; - route = { - pageConfig: { - pageKey: 'testPage', - schema: {}, - uiSchema: {}, - errorMessages: {}, - title: '' - }, - pageList: [ - { - path: 'previous-page' - }, - { - path: 'testing', - pageKey: 'testPage' - }, - { - path: 'next-page' - } - ] - }; - form = { - pages: { - testPage: { - schema: {}, - uiSchema: {}, - } - }, - data: {}, - testPage: { - schema: {}, - uiSchema: {}, - data: {} - } - }; - user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: false - } - }; tree = SkinDeep.shallowRender( + route={makeRoute()}/> ); }); it('change', () => { @@ -140,45 +122,6 @@ describe('Schemaform ', () => { }); }); it('should go back to the beginning if current page isn\'t found', () => { - const route = { - pageConfig: { - pageKey: 'testPage', - schema: {}, - uiSchema: {}, - errorMessages: {}, - title: '' - }, - pageList: [ - { - path: 'first-page' - }, - { - path: 'previous-page' - }, - { - path: 'testing', - pageKey: 'testPage' - } - ] - }; - const form = { - pages: { - testPage: { - depends: () => false, - schema: {}, - uiSchema: {}, - } - }, - data: {} - }; - const user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: false - } - }; const router = { push: sinon.spy() }; @@ -186,68 +129,41 @@ describe('Schemaform ', () => { const tree = SkinDeep.shallowRender( + form={makeForm()} + route={makeRoute()} + location={{ pathname: '/missing-page' }}/> ); tree.getMountedInstance().goBack(); expect(router.push.calledWith('first-page')); }); + it('should not show a Back button on the first page', () => { + const tree = SkinDeep.shallowRender( + + ); + + expect(tree.subTree('ProgressButton').props.buttonText).to.equal('Continue'); + }); it('should render array page', () => { - const route = { + const route = makeRoute({ pageConfig: { pageKey: 'testPage', showPagePerItem: true, - arrayPath: 'arrayProp', - errorMessages: {}, - title: '' - }, - pageList: [ - { - path: 'testing' - } - ] - }; - const form = { - pages: { - testPage: { - schema: { - properties: { - arrayProp: { - items: [{}] - } - } - }, - uiSchema: { - arrayProp: { - items: {} - } - } - } - }, - data: { - arrayProp: [{}] + arrayPath: 'arrayProp' } - }; - const user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: false - } - }; + }); + const form = makeArrayForm(); const tree = SkinDeep.shallowRender( + location={{ pathname: '/testing/0' }}/> ); expect(tree.subTree('SchemaForm').props.schema).to.equal(form.pages.testPage.schema.properties.arrayProp.items[0]); @@ -256,55 +172,18 @@ describe('Schemaform ', () => { }); it('should handle change in array page', () => { const setData = sinon.spy(); - const route = { + const route = makeRoute({ pageConfig: { pageKey: 'testPage', showPagePerItem: true, - arrayPath: 'arrayProp', - errorMessages: {}, - title: '' - }, - pageList: [ - { - path: 'testing' - } - ] - }; - const form = { - pages: { - testPage: { - schema: { - properties: { - arrayProp: { - items: [{}] - } - } - }, - uiSchema: { - arrayProp: { - items: {} - } - } - } - }, - data: { - arrayProp: [{}] + arrayPath: 'arrayProp' } - }; - const user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: false - } - }; + }); const tree = SkinDeep.shallowRender( @@ -313,58 +192,18 @@ describe('Schemaform ', () => { tree.getMountedInstance().onChange({ test: 2 }); expect(setData.firstCall.args[0]).to.eql({ - arrayProp: [ - { - test: 2 - } - ] + arrayProp: [{ test: 2 }] }); }); it('should update data when submitting on array page', () => { const setData = sinon.spy(); - const route = { + const route = makeRoute({ pageConfig: { pageKey: 'testPage', showPagePerItem: true, - arrayPath: 'arrayProp', - errorMessages: {}, - title: '' - }, - pageList: [ - { - path: 'testing' - } - ] - }; - const form = { - pages: { - testPage: { - schema: { - properties: { - arrayProp: { - items: [{}] - } - } - }, - uiSchema: { - arrayProp: { - items: {} - } - } - } - }, - data: { - arrayProp: [{}] - } - }; - const user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: false + arrayPath: 'arrayProp' } - }; + }); const router = { push: sinon.spy() }; @@ -373,21 +212,16 @@ describe('Schemaform ', () => { ); tree.getMountedInstance().onSubmit({ formData: { test: 2 } }); expect(setData.firstCall.args[0]).to.eql({ - arrayProp: [ - { - test: 2 - } - ] + arrayProp: [{ test: 2 }] }); }); }); diff --git a/test/js/helpers.unit.spec.js b/test/js/helpers.unit.spec.js index 948d81c..f7f9ad9 100644 --- a/test/js/helpers.unit.spec.js +++ b/test/js/helpers.unit.spec.js @@ -348,7 +348,12 @@ describe('Schemaform helpers:', () => { }, chapter2: { pages: { - page2: {} + page2: { + schema: { + type: 'object', + properties: {} + } + } } } } @@ -366,6 +371,60 @@ describe('Schemaform helpers:', () => { field: 'testing' }); }); + it('should not remove properties that are on both active and inactive pages', () => { + const formConfig = { + chapters: { + chapter1: { + pages: { + page1: { + schema: { + type: 'object', + properties: { + otherField: { + type: 'string' + }, + anotherField: { + type: 'string' + } + } + }, + depends: { + field: 'something' + } + }, + } + }, + chapter2: { + pages: { + page2: { + schema: { + type: 'object', + properties: { + anotherField: { + type: 'string' + } + } + } + } + } + } + } + }; + const formData = { + data: { + otherField: 'testing2', + anotherField: 'testing3', + field: 'testing' + } + }; + + const output = JSON.parse(transformForSubmit(formConfig, formData)); + + expect(output).to.eql({ + field: 'testing', + anotherField: 'testing3' + }); + }); it('should remove empty addresses', () => { const formConfig = { chapters: { diff --git a/test/js/review/ReviewPage.unit.spec.jsx b/test/js/review/ReviewPage.unit.spec.jsx index b28b08b..080993b 100644 --- a/test/js/review/ReviewPage.unit.spec.jsx +++ b/test/js/review/ReviewPage.unit.spec.jsx @@ -47,19 +47,9 @@ describe('Schemaform review: ReviewPage', () => { } }; - const user = { - profile: { - savedForms: [] - }, - login: { - currentlyLoggedIn: true - } - }; - const tree = shallow( f}